Increasing accuracy in workout autodetection systems and methods

ABSTRACT

Devices, systems, and methods can be used including receiving motion data, categorizing the motion data into portions of a minute that indicate activity or a workout, and automatically determining an accurate number of active minutes for an individual. Multiple data streams may be analyzed and de-duplicated, such that an accurate metric may be computed and reported to an individual.

FIELD OF THE INVENTION

Embodiments of the present invention generally relate to methods andsystems related to health and wellness tracking. More particularly,embodiments of the present invention relate to methods and systems forautomatically detecting various activities, including from various datasources.

BACKGROUND OF THE INVENTION

Athletic activity and general wellness activity can take many forms—someindividuals prefer to engage in team athletic activities such as, forexample, soccer or basketball, while other individuals prefer to engagein individual athletic activities such as, for example, cycling,running, or skiing. Regardless of whether the activity is a team orindividual activity, it is becoming more and more common for individualsto actively track their performance. Further, renewed focus on healthand wellness systems encourage individuals to track more passive typesof activity, such as cycling commuting, or taking a walk on a lunchbreak, for example.

In this respect, it is advantageous to provide systems and methods thatwill track and provide an individual with analytical, quantitative, andqualitative understanding of health and wellbeing. Providing systems andmethods that can automatically track and categorize different types ofactivity is further advantageous, as they would not require intenseengagement from an individual with a complicated interface, for example.That is, activity tracking applications may be complex, includingvarious features and information an individual does not wish to track.Additionally, individuals may wish to use a particular device to trackeverything, without needing multiple applications or devices. On theother hand, personal choice may contribute to an individual wishing touse a particular data source, for example, because they enjoy aparticular device or application. A single application that mayaggregate data and information from multiple sources is thus furtheradvantageous. Counting active minutes into a single number, whether inthe form of ambient movement around an office, or a workout, may give anindividual a single snapshot of activity level. Of course, notingseparate calculation of workouts may also be advantageous.

BRIEF SUMMARY OF THE INVENTION

Embodiments of the present disclosure relate to devices, systems, andmethods that can be used to track an individual's activity and healthrelated data, automatically detect activity and workouts, providefeedback, encouragement, etc. Some embodiments are directed to a healthand fitness monitoring system for calculating active minutes for anindividual, a portable electronic device configured to be carried by theindividual. In some embodiments, the electronic device includes a motionsensor configured to generate a first motion data stream includingtime-stamped motion data. The portable electronic device may include aprocessor and a memory. The processor is configured to process the firstmotion data stream into an active segment data stream indicating anactive range for a given duration, in some embodiments. In someembodiments, the processor is also configured to organize the activesegment data stream into a time-stamped minute buckets includingduration values for a plurality of activity-specific classifications.The memory is configured to store the time stamped minute buckets in anarray in some embodiments. In some embodiments, the processor isconfigured to determine that a portion of the array includes one of theminute buckets that indicates that the individual engaged in a workoutbased on the duration values for the plurality of activity-specificclassifications. In some embodiments, the processor further configuredto receive a second motion data stream including third party softwareplatform motion data, wherein the system de-duplicates data within thesecond motion data stream corresponding to data within the first motiondata stream. In some embodiments, the data may be merged andde-duplicated, or solely merged. In some embodiments, two or more datasources may be fused together, such that the system selects componentsof each of the two or more data sources, and their combined into asingle usable data source for system 10.

In some embodiments, the first motion data stream includes an operatingsystem based activity classification, and wherein the second motion datastream includes an activity classification of the third party softwareplatform. In some embodiments, one or more motion streams may include astep and/or distance measurements, to aid in replacing and/orsupplementing activity classification. In this way, by counting thenumber of steps (or distance), different types of activity may beclassified, such as walking, running, or not walking/running.Advantageously, step counting data may be transmitted more frequently,or more quickly, and may take it vantage of third-party data, forexample if individual connects the third-party device and/or data withthe software platform.

In some embodiments, the processor further consolidates the data arrayinto an hourly summary that is transmitted to a back end system. In someembodiments, the second motion data stream is sent to the back endsystem, and is added to the hourly summary. In some embodiments, thefirst motion data stream includes an operating system based activityclassification, and wherein the second motion data stream includes anactivity classification of the third party software platform.

In some embodiments, the processor defines a candidate start densitythreshold, which is defined by a percentage of a motion classificationone of the minute buckets must reach in order for the processor toconsider the one of the minute buckets to be a candidate for the startof an activity. In some embodiments, the processor further defines aminimum time active such that the individual may input, through a userinterface on the portable electronic device, a desired threshold for thesystem to consider a workout after a candidate start density thresholdminute.

Some embodiments are directed to a health and fitness monitoring methodfor automatically detecting an activity, including receiving a firstmotion data stream including motion data for an individual, receiving asecond motion data stream including motion data for the individual,processing, via a processor, the first motion data stream into a motionsegment data stream, organizing, via the processor, the motion segmentdata stream into minute buckets to be stored in a memory as an array,comparing the array to the second motion data stream to determine thatthe first motion data stream and second motion data stream overlap, todetermine unique data in the second motion data stream corresponding toadditional active minutes, and adding the minute buckets from the firstmotion data stream to the additional active minutes of the second motiondata stream. In some embodiments, the array may be compared to thesecond motion data stream to determine if the first motion data streamand second motion data stream overlap. If the array and the secondmotion data stream do not overlap, the system 10 may proceed to analternate step, for example, merging the array with the second motiondata stream. For example, in determining whether the array and thesecond data stream overlap, system 10 made term and whether anindividual may have their mobile device with them or not have theirmobile device with them, or are using applications on the same mobiledevice that is collecting data at the same time as other applications onthe same mobile device. In some embodiments, the first motion datastream includes an operating system based activity classification.

In some embodiments, the method includes determining that an entry ofthe array indicates an inactive density threshold, determining that aminimum time inactive has elapsed after the entry of the arrayindicating the inactive density threshold such that it is determinedthat the activity has ended, confirming whether a minimum time activeelapsed between a candidate start density threshold and the end of theactivity such that the activity is categorized as a workout. In someembodiments, the second motion data stream includes a third partysoftware platform activity classification. In some embodiments, thesecond motion data stream includes data input by the individual. In someembodiments, the second motion data stream includes geo-tagged data.

Some embodiments are directed to a health and fitness monitoring methodfor automatically detecting a workout, including comparing motion datafrom a portable electronic device with third party motion data,categorizing the overlap of the motion data from the portable electronicdevice with the third party motion data, determining that a minimum timeactive has elapsed between an indication that an activity has begun andan indication that the activity has ended such that the activity iscategorized as a workout based on the overlap of the motion data, andadding active time within the third party motion data that is not alsowithin the motion data from the portable electronic device.

In some embodiments, the minimum time active is configured by anindividual in a user interface. In some embodiments, the categorizing ofthe motion data categorizes motion data as inactive if the third partymotion data includes the same data.

Some embodiments are directed to a health and fitness monitoring methodfor automatically detecting an activity, including receiving a firstmotion data stream at a front end of a software platform, receiving asecond motion data stream at the front end of the software platform,transmitting the first and second motion data streams to a back end ofthe software platform to be normalized and de-duplicated, andtransmitting a third data stream to the front end of the softwareplatform representative of the unique summation of active minutesbetween the first and second motion data streams.

In some embodiments, the first motion data stream includes an operatingsystem based activity classification. In some embodiments, the methodincludes receiving a user input motion data stream from a user at afront end of a software platform corresponding to a workout engaged inby the individual, and transmitting the user input motion data stream toa back end of the software platform to be normalized and de-duplicatedwith the first and second motion data streams, wherein the third datastream further includes the unique summation of active minutes betweenthe first, second, and user input motion data streams. In someembodiments, the method includes receiving a geo-tagged input motiondata stream from a user at a front end of a software platformcorresponding to a workout engaged in by the individual, andtransmitting the geo-tagged input motion data stream to a back end ofthe software platform to be normalized and de-duplicated with the firstand second motion data streams. In some embodiments, the third datastream further includes the unique summation of active minutes betweenthe first, second, and geo-tagged input motion data streams. In someembodiments, the method includes determining that a minimum time activehas elapsed between determining the individual has likely engaged in anactivity and determine an individual is not engaged in an activity, andindicating that a workout has occurred.

BRIEF DESCRIPTION OF THE DRAWINGS/FIGURES

The accompanying figures, which are incorporated herein, form part ofthe specification and illustrate embodiments of the present invention.Together with the description, the figures further serve to explain theprinciples of and to enable a person skilled in the relevant arts tomake and use the invention.

FIG. 1 is an illustration of a system using one or more sensor modulesaccording to various embodiments.

FIG. 2 is a conceptual relationship illustration of a software platformaccording to an example embodiment.

FIG. 3 is an example sensor module useful for implementing variousembodiments.

FIG. 4 is an example electronic device useful for implementing variousembodiments.

FIG. 5 shows a representative communication system useful forimplementing various embodiments.

FIG. 6 is an example computer system useful for implementing variousembodiments.

FIG. 7 shows a flowchart showing a health and fitness monitoring methodfor automatically detecting an activity according to an embodiment.

FIG. 8 shows a flowchart showing a health and fitness monitoring methodfor automatically detecting a workout according to an embodiment.

FIG. 9 shows a flowchart showing a health and fitness monitoring methodfor automatically detecting an activity according to an embodiment.

DETAILED DESCRIPTION OF THE INVENTION

The present invention will now be described in detail with reference toembodiments thereof as illustrated in the accompanying drawings.References to “one embodiment”, “an embodiment”, “an exampleembodiment”, “some embodiments”, etc., indicate that the embodimentdescribed may include a particular feature, structure, orcharacteristic, but every embodiment may not necessarily include theparticular feature, structure, or characteristic. Moreover, such phrasesare not necessarily referring to the same embodiment. Further, when aparticular feature, structure, or characteristic is described inconnection with an embodiment, it is submitted that it is within theknowledge of one skilled in the art to affect such feature, structure,or characteristic in connection with other embodiments whether or notexplicitly described.

The term “invention” or “present invention” as used herein is anon-limiting term and is not intended to refer to any single embodimentof the particular invention but encompasses all possible embodiments asdescribed in the application.

Various aspects of the present invention, or any parts or functionsthereof, may be implemented using hardware, software, firmware,non-transitory tangible computer readable or computer usable storagemedia having instructions stored thereon, or a combination thereof, andmay be implemented in one or more computer systems or other processingsystems.

The present invention generally relates to methods and systems thatcollect, store, and communicate data to an individual related to anexperience, such as a “discovery experience,” or “discovery.” Detailsregarding discoveries and experiences can be found in co-pending andco-owned application U.S. application Ser. No. 15/456,272, filed Mar.10, 2017, which is incorporated herein by reference for all purposes.

FIG. 1 illustrates an exemplary system 10 that uses sensor modules 102and electronic device 400, such as a mobile phone, which may include asensor module 102. While not specifically shown here, sensor modulescould also be embedded in items of apparel (e.g., headbands, hats,wristbands, gloves, jackets, wetsuits, swimsuits, and vests, to name afew non-limiting examples). According to various embodiments, sensormodules 102 may be embedded either removably or permanently in anarticle of apparel (e.g., clothing or shoes) or in an accessory or pieceof athletic equipment (e.g., balls, bats, pads, racquets, clubs, bags,belts, headbands, and wristbands, to name a few non-limiting examples).For instance, in some embodiments sensor devices may be embedded oraffixed to an item via, e.g., sewing, gluing, a pocket, integrationduring manufacturing, to name a few non-limiting examples. Embodimentsadditionally include use of sensor modules 102 to monitor sleep. In suchembodiments, the sensor modules 102 may be attached to, or integratedwith sleep garments such as pajamas or sleeping pants with the sensordevices located, for instance, in a waist area or chest area of thesleep garment. For sleep monitoring, sensor modules 102 could beconfigured to measure night movements, heart rate, and breathing andthis data could be processed and used to generate a sleep qualityindication.

Suitable portable fitness or activity monitoring software applicationsmay include, for example, the features of those disclosed in commonlyowned U.S. Pat. No. 9,392,941, which is incorporated herein by referencein its entirety.

The systems and methods may be effected through software platform 1000(which may be included in system 10, sensor module 102, electronicdevice 400, etc.), containing software modules, for example. In someembodiments, fewer modules may be included, or additional modules may beincluded. In some embodiments, modules may be removed or added, forexample through a network connection. Programming data may includesoftware platform, and include various modules. Each of the componentsin sensor module 102, for example, or electronic device 400, may feedthe modules data that the modules use to formulate a response. In otherembodiments, the systems and methods may be effected through softwareplatform 1000 in an electronic device 400 in addition to or instead ofin system 10. In some embodiments, software platform may communicatewith a third party software platform 2000, or an operating systemsoftware platform 3000, and exchange and or utilize data streams orsettings from one or more additional software platforms.

Once individual 100 enables data enabling on software platform 1000, thesystem 10 may be configured to automatically perform actions related todata collection. In some embodiments, system 10 will then be configuredto automatically track or log workouts or athletic activities thatindividual 100 performs. In some embodiments, system 10 mayautomatically determine when individual 100 begins a long walk, a run, abike ride, bike commute, etc. In some embodiments, workouts may includethe time it takes individual 100 to walk to and from the workout. Insome embodiments, workouts may omit exactly when individual 100 startsor finishes just the running part of a workout, for example. In someembodiments, the workout duration is the start to finish duration, andcould include time for breaks, walking, running, cycling, and the like.

In some embodiments, system 10 may automatically log a workout ifindividual 100 is in a particular location (e.g., a gym, track, arena,athletic complex, etc.) for a prolonged period of time (e.g., about20-30 minutes). In some embodiments, individual 100 may enable thisfeature of system 10 by tagging a location while manually adding aworkout for the first time. In some embodiments, when individual 100manually adds a workout, individual 100 will be able to specify that thesame workout should be logged when individual 100 visit the samelocation. In some embodiments, individual 100 may have the option tocustomize the minimum amount of time for an activity to be logged as aworkout. In some embodiments, system 10 may set a default time, e.g., 10minutes, but individual 100 may alter this threshold.

In some embodiments, system 10 may default to automatically trackingworkouts after a period of time, e.g., 10 minutes, which may be alteredby individual 100. In some embodiments, system 10 may automatically stopcounting a workout if individual 100 takes a break for a predeterminedduration. In some embodiments, individual 100 may configure which datasource tracks a specific metric, or exclude certain data sources fromtracking certain metrics. In some embodiments, additional individual 100specific settings may be available. For example, individual may be ableto set units for length, weight, etc. In some embodiments, individual100 may be able to configure and enable notifications system 10 willsend, e.g., “push notifications” to individual 100 electronic device400. These notifications may remind individual 100 of important events.These notifications may include tips, insights, workout summaries, newrecommended discovery experiences, discovery experience reminders, etc.In some embodiments, individual 100 may configure system 10 permissionsto access data such as location, motion, camera, and photo library data.In some embodiments, individual 100 may specify whether downloads(video, audio, photo) happen over cellular data and WiFi or just WiFi.

In some embodiments, GPS speed may be utilized to detect workouts, e.g.,running workouts, cycling workouts, and active minute based workouts. Asused herein, active minutes is defined as the sum of the minutes thatindividual 100 was active throughout the day (e.g., on Apr. 9, 2017, theindividual was active for a total of 47 minutes). Active minutes mayinclude events such as walking, running, gardening, cycling commuting,cycling for leisure, or a cycling workout, for example. In someembodiments, separate categories of active minutes, such as activecycling workout minutes are contemplated.

In some embodiments, as used herein, a workout may be a concentratedsession of activity defined by user input (e.g., at least 15 minuteslong) along with algorithmic parameters (e.g., how much of anyindividual minute must include automatically detected activity, alsoreferred to as active density). For example, in some embodiments, thealgorithm may define an active density of greater than about 60%. Insome embodiments, the algorithm may define a rest duration threshold,e.g., activity with no stops longer than about 9 minutes. In order toobtain accurate workout information, in some embodiments, the system 10identifies workout duration to the resolution of whole minutes.

In some embodiments, a classification of activity may supplement orreplace the system 10 defining an active range. In this way, obtainingdata that allows system 10 to determine what an individual is doing at aspecific time, for duration, it is implied by the difference in time, toa later, different activity (or a specific measured duration).

Software platform 1000 may be generally structured to link functions,such as first time use, goal definitions, discovery library, home,discovery content, etc. Additionally, software platform 1000 may includea profile, settings/preferences, and a link to an online shoppingapplication, and social applications, for example.

As shown in FIG. 2, software platform 1000 may include several modules,such as GPS parameter module 1100, motion parameter module 1102, datastream communication module 1104, motion segment module 1106, densitybucket module 1108, data array module 1110, array analysis module 1112,confirmation module 1114, reset module 1116 etc. System 10 may providethat software platform 1000 includes a front end as well as a back end.Various data storage and processing functions may be carried out on oneor more of these ends of the software platform 1000. In someembodiments, the back end may be a separate platform (e.g., a hostedplatform).

Various software modules of the present invention may support graphicaluser interfaces (GUIs) through which an individual 100 can interact withthe system 10. A GUI may offer, for example, graphical elements, visualindicators, and/or text to represent information and actions availableto the individual 100. The individual 100 may use a physical inputdevice, such as keyboard or scroll ball to interact with the GUI of theelectronic device 400. Alternatively, the individual 100 may use a touchscreen to interact directly with what is displayed. Various touchscreens such as, for example, resistive or capacitive touch screens, maybe employed. Those skilled in the art will appreciate that alternativeor additional software modules and sub-modules may be implemented inorder to provide or extend the described or additional functionalitiesto the individual 100 using the electronic device 400. For example, thesoftware configuration of software stored on an electronic device 400may include a device operating system, which may be one of thecommercially available mobile phone operating systems such as, forexample, BlackBerry OS, iPhone OS, Windows Mobile, Symbian, LINUX,WebOS, or Android. The device operating system may also have anassociated application programming interface through which middlewareand application programs may access the services of the operatingsystem.

The various modules of the system 10 of the present invention maysupport GUIs through which an individual 100 can interact with thesystem 10 using the electronic device 400 just prior to and/or during anactivity. As will be appreciated by those of skill in the art, in oneembodiment the GUIs may be supported by a mobile device applicationbeing run on the electronic device 400. In another embodiment, the GUIsmay appear as web pages provided by the server via a website that may beaccessible to the individual 100 over the network using a web browser ontheir electronic device 400. The GUIs may be considered to be part ofthe methods or systems of the present invention.

In order to access the features of embodiments of the present inventionjust prior to or during a physical activity, the individual 100 usingthe electronic device 400 may power on their electronic device 400 if itis not already in a powered up state. In some embodiments, it may benecessary for the individual 100 to manipulate user input controls toenter system 10 mode to access the application software.

In some embodiments, the software app running on the electronic device400 may also include “hidden” features that cannot be accessed unlessunlocked in standard operation of the app without an additional step,such as automatic cycling activity detection. In one embodiment, theadditional step may include the selection or purchase of a particularhealth or fitness goal or workout plan, attaining particular personalperformance metrics, or activating the app during a specified timeperiod (e.g. on a holiday or particular day of the week) or when theelectronic device 400 is being used in a specified geographical location(e.g. in a specific city, park, etc.). In some embodiments, features maybe controlled through a “Guest Mode,” where information may be saved buta guest individual can only view a limited time history, e.g., one week.In some embodiments, once they create an account, an entire history maybecome available. In some embodiments, the Guest Mode may restrict thenumber of discovery experiences that may be active.

After launching the application software, the individual 100 may causedifferent GUI pages to be provided by different modules by selectingtheir corresponding icons using user input controls. Additional iconscorresponding to sub-modules or program wizards associated with aparticular module may pop up or otherwise be displayed to the individual100 if the individual 100 selects, swipes, or hovers over a module iconwith a cursor. All modules may have one or more sub-modules which may benavigated to and from by clicking, swiping, etc. All modules may haveone or more sub-modules which may be navigated to and from by clicking,swiping, etc. In some embodiments, the system may allow the individual100 one of upload photos, videos, medical records, and the like forincorporation into the system.

In some embodiments, there may be an introduction animation for firsttime use of the system 10. There may also be a setup and tutorial forfirst time use by the individual 100. Additionally there may be awalkthrough section that may include step-by-step instructionsexplaining the process of the system and corresponding application. Insome embodiments, the system 10 may automatically select the languageand localization of the electronic device 400 characteristics, IPaddress, GPS location, or the like. The system 10 may also allow fordefault language preferences to be changed in a settings menu.

As discussed above, system 10 may track activity details. In someembodiments, active minutes may be tracked by system 10. Active minutesmay include a measure of the time individual 100 is active in any way.In some embodiments, walking, running, and cycling are all consideredactive, regardless of the intensity, for example. In some embodiments,workouts may be added, and considered active, regardless of theintensity. In some embodiments, this may encourage individual simply tobe active, no matter what the method, and may contribute positively tobehavior change. In some embodiments, active calories may be determinedby system 10. For example, activities like an aerobics class, that areharder and more intense burn more calories per minute than activitieslike walking that are less intense. Active calories may account forintensity, convolved with active minutes, to further inform individual100. In some embodiments, system 10 may track trends, e.g., such as anactive week followed by a low week. In some embodiments, based on thetype of activity, a subset of active minutes may be assigned MetabolicEquivalent of Task (MET). In some embodiments, METS are then multipliedby individual's data, such as weight and time of activity to calculateactive calories. In some embodiments, system 10 may add in calories asmeasured from external workouts, third party applications, etc. In someembodiments, calories may include more detailed intensity data likespeed, power, or heart rate.

In some embodiments, the systems and methods related to the automaticdetection of activity and workouts contemplate physical alteration ofcode or components, such as transforming code or components such thatthe system or method is physically altered (e.g., creating a new datafile, for example). Advantageously, the solutions provided herein arerooted in technology, e.g., computer technology, and overcome problemsrelated to physiological monitoring for example and GPS speed analysisamong similar speed ranges for different activities such as cycling andautomotive transit, or cycling and fast running, for example. Thesesolutions are unique to technological realms such as data processing,e.g., GPS data stream processing and display. The systems and methodsdescribed herein additionally may contemplate additional elements beyonddata relationships, such that the solutions tie process advantages to aparticular device and increase performance of such a device (e.g.,increasing processing efficiency, resolution for location basedfeatures, etc.).

In some embodiments, individual 100 can interact with a displayedactivity, and the specific activity will be shown on a respective detailmodule or sub-module. In some embodiments, individual may view allworkouts detected for the specific activity. In some embodiments, system10 will include additional information, such as total duration, sessionduration, intensity level, activity start or end time, distance,calories, total calories, step count, etc. In some embodiments, workoutdurations include a majority of the activity, but may also include timefor breaks, or other activities. In some embodiments, “Ambient” Walkingor Running minutes are shown within the Walking and Running detailscreens. “Ambient” minutes include walking or running minutes that havenot been included within a workout, e.g., the walking and running thatindividual 100 does in small amounts throughout a day.

As used herein, the threshold points, ranges, parameter names, etc., maybe given variable names that indicate what they are intended to describewithin a module or sub-module that may incorporate higher-orderprogramming or scripting functions.

In some embodiments, system 10 is configured to count any workout timeas active, and thus add any workout time as active minutes to the totaldaily active minutes. Several potential sources of data for activeminutes exist, as discussed below, with reference to FIG. 1.

As shown in FIG. 1, in some embodiments, active minutes may be derivedfrom sensors in an individual's electronic device 400, e.g., a mobilephone. As described, in some embodiments, electronic device 400 mayinclude an operating system or third party software, that may categorizedata from sensors such that system 10 may calculate and further classifydata into active minutes through software platform 1000. In one example,active minutes may be derived from an operating system based activityclassification data stream (e.g., iOS Core Motion on an iPhone, Androidclassification stream through a Google Fit API, etc.). In someembodiments, active minutes may be derived from manual entry byindividual 100. In some embodiments, system 10 may determine whether ornot the manual entry data from the individual overlaps with pre-receiveddata streams, either from a local source for third-party source. In someembodiments, system 10 may suggest to individual, or pre-populate someyields of manual entry, such as steps, calories, distance, time, type ofactivity, intensity of workout, or other relevant data field. In someembodiments, active minutes may be derived from geo-tagging (e.g.,individual 100 instructs system 10 to automatically log a particularnumber of active minutes if system 10 detects that individual 100 isnear a particular location). In some embodiments, active minutes may bederived from a third party software platform activity data stream (e.g.,Apple Health, Google Fit, Jawbone, other workout applications), ormanual input for example. In some embodiments, electronic device 400 mayrecord active minutes and aggregate their data with particularattributes on an hourly basis, to be sent to the back end of softwareplatform 1000 to be added together. Other time intervals arecontemplated. In some embodiments, the raw streams of data may be storedon the backend, such that system 10 may re-create any bucket segments orsummaries on demand, for example, in order to take advantage of newlydeveloped algorithms, thus improving processor performance itself. Insome embodiments, prioritization of data streams may be performed bysystem 10, based on which type of third-party data streams are beingreceived by system 10. In some embodiments system 10 may auto prioritizedata sources based on a predetermined qualitative assessment ofparticular types of third-party data streams.

As described above, in an effort to allow for flexibility of choice forindividual 100, system 10 may allow individual 100 to select one or moredata sources described above to derive active minutes from. As such, insome embodiments, active minutes may be derived from more than one ofthe above described sources, which may introduce duplication of activeminutes into system 10. For example, if an operating system basedactivity classification (“OSBAC”) data stream is the sole data sourcefor all activity data (e.g., active minutes, workout sessions, etc.),then no duplication of data arises. The OSBAC data stream may begenerated, e.g., by a motion sensor, and may be a motion data stream.However, if individual 100 adds a workout manually, or through a geo-tagfeature, these active minutes and workout session would be added to thedaily total of active minutes, to capture all active minutes into system10. In this case, if the individual 100 carried their electronic device400 (e.g., mobile phone) with them during the time of the Manual Entry(or Geo-Tag) workout, the OSBAC data stream 4000 will add with themanual data entry, and the active minutes will be double counted. If theindividual 100 did not carry their electronic device 400 (e.g., mobilephone) with them during the time of the Manual Entry (or Geo-Tag)workout, the OSBAC data stream 4000 will not include any active minutesto add to the daily active minutes total. The same is true for thirdparty software platforms activity classification (“TPSPAC”) datastreams, e.g., by a motion sensor (either the same as the OSBAC datastream generating motion sensor or different motion sensor), and may bea motion data stream. The doubling of active minutes may affect othervalues, such as active calories, active distance, or active steps. Lessfavorable solutions are inaccurate and inefficient. For example, eitheractive minute data is doubled, leading to overestimating active time ofindividual 100, or system 10 may require an individual 100 to carryelectronic device 400 during a workout to be counted through TPSPAC datastream 5000.

In some embodiments, system 10 may be configured such that portions of adata stream are restricted to one source, e.g., the individual 100 mayonly be allowed to configure one data source for step counting, or onedata source for cycling workouts, for example. In some embodiments,system 10 may limit data sources for workouts. In some embodiments, datarelated to steps or distance may be tracked separately from activeminute data, either through TPSPAC data stream 5000 or OSBAC data stream4000, for example, whichever is selected by individual 100. In thisregard, if steps are set to be counted by individual 100 through OSBACdata stream 4000, and an individual uses a TPSPAC data stream 5000 torecord a workout, this will result in the steps and distance reportedwill be double counted in the total, because the data streams aredifferent sources.

In some embodiments, a TPSPAC data stream 5000 may be configured to bepre-filtered and/or preprocessed to result in an OSBAC data stream 4000,which then system 10 may calculate active minutes.

In some embodiments, system 10 is segmented into a front end platform(e.g., software run on mobile device 400) and a back end platform (e.g.,platform run remotely, for example, on a server). In some embodiments,active minutes from OSBAC data stream 4000 are saved locally, e.g.,within the front end platform run on mobile device. In some embodiments,active minutes are periodically aggregated, for example on an hourlybasis and stored on an hourly basis. In some embodiments, this data isconverted into an hourly summary of activity data, including dataattributes such as workout active minutes (e.g., manually input workoutsor third party workouts), and ambient active minutes (e.g., activeminutes detected by electronic device 400). In this regard, less data istransmitted between electronic device 400 and a back end platform.However, as discussed herein, this may lead to duplicate active minutesbeing calculated by the system 10. An example of this issue is shownbelow in Table 1.

As shown in Table 1, a manually input workout, or workout from a TPSPACdata stream 5000 may be saved with a start time and an end time, alongwith the data attributes identifying it as a workout. As shown in thefigure, the electronic device 400 may provide an OSBAC data stream 4000,which again may be periodically aggregated, for example on an hourlybasis. In some embodiments, this data is converted into an hourlysummary of activity data, including data attributes such as workoutactive minutes (e.g., manually input workouts or third party workouts),and ambient active minutes (e.g., active minutes detected by electronicdevice 400). If a workout is input or detected by a TPSPAC data stream5000, for example, from 12:50 pm to 1:30 pm, for example, and OSBAC datastream 4000 is also available (e.g., individual carried electronicdevice 400 with them during the activity), Table 1 illustrates theresults:

TABLE 1 Workout ‘layer’: workouts are saved with a start and end time,along with attributes 12:50-Workout-1:30 Minute Buckets (simulated):numbers are fraction of a minute that was active 1.0 = 100% 1.0 .9 1.01.0 1.0 1.0 .9 1.0 .9 1.0 1.0 .9 .9 .8 .8 .1 .0 .0 .0 .2 OTS Layer:Hourly Attributes: Each hour has attributes like Active Minutes . . . 12pm to 12:59 pm 1:00 pm to 1:59 pm . . . Ambient Active Mins = 35 minsAmbient Active Mins = 37 mins Workout Active Mins = 10 mins WorkoutActive Mins = 30 mins Total = 45 mins Total = 67 mins

As shown, because OSBAC data stream 4000 includes active minutes fromthe workout, as well as general active minutes not associated with aworkout, these minutes will be added to the TPSPAC data stream 5000workout minutes in the hourly summary, to be sent to and stored in theback end. As shown, this will duplicate the active minutes associatedwith the workout, i.e., they are double counted.

In the case of an individual carrying electronic device 400 with themsuch that OSBAC data stream 4000 includes ambient active minutes, butstoring the electronic device 400 while participating in a workoutassociated only with a TPSPAC data stream 5000, it is possible thatthere may be some overlap, or even a gap between the data, however it isdifficult to determine when a user may start a workout that is savedinto the TPSPAC data stream 5000. Exemplary Table 2 shows arepresentative result:

TABLE 2 Workout ‘layer’: workouts are saved with a start and end time,along with attributes 12:50-Workout-1:30 Minute Buckets (simulated):numbers are fraction of a minute that was active 1.0 = 100% 1.0 .9 1.01.0 1.0 1.0 0.2 0.0 0.0 0.0 0.0 0.0 0.0 0.1 .8 .1 .0 .0 .0 .2 OTS Layer:Hourly Attributes: Each hour has attributes like Active Minutes . . . 12pm to 12:59 pm 1:00 pm to 1:59 pm . . . Ambient Active Mins = 30 minsAmbient Active Mins = 10 mins Workout Active Mins = 10 mins WorkoutActive Mins = 30 mins Total = 40 mins Total = 40 mins

As shown, in this case, even if there is slight overlap between theOSBAC data stream 4000 and TPSPAC data stream 5000, it is likely small,and may be ignored by system 10, in that an error of a few activeminutes is likely not to be important to an individual.

A similar case may be found if electronic device 400 is left in oneplace, e.g., the individual's home for most of the day. Table 3 belowshows a representative result.

TABLE 3 Workout ‘layer’: workouts are saved with a start and end time,along with attributes 12:50-Workout-1:30 Minute Buckets (simulated):numbers are fraction of a minute that was active 1.0 = 100% 0.0 0.0 0.00.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 OTSLayer: Hourly Attributes: Each hour has attributes like Active Minutes .. . 12 pm to 12:59 pm 1:00 pm to 1:59 pm . . . Ambient Active Mins = 0mins Ambient Active Mins = 0 mins Workout Active Mins = 10 mins WorkoutActive Mins = 30 mins Total = 10 mins Total = 30 mins

In this case, because there is no overlap, when OSBAC data stream 4000and TPSPAC data stream 5000 are added together for a given hour to besaved to the back end, there is no duplication of data.

As shown, the issue arises in the conversion of minute bucket data tohourly summary data to be saved in the back end. In some embodiments, inorder to properly identify when data from various sources overlaps, andto properly merge this data or fill in missing data, system 10 mayinclude resolution down to the minute level throughout the whole day.

To overcome this issue, system 10 may be configured to account foractive minutes from any workout (e.g., CoreMotion, 3rd party, ormanual), while also always ambiently collecting active minutes fromOSBAC data stream 4000 (such as Core Motion), but then suppress OSBACdata stream 4000 ambient minutes during those workout times. In someembodiments, system 10 may be configured to cache minute buckets onelectronic device 400, e.g., on the front end. If a TPSPAC data stream5000 arrives, the active minute duration may be added for that activitytype. System 10 may then identify minute buckets that intersect with theworkout, and subtract the sum of the active minutes of that activitytype.

In some embodiments, system 10 may be configured to store active minutesfor a predetermined period of time (e.g., six months) for later reviewby individual. In some embodiments, individual may be able to delete aworkout, for example, a TPSPAC data stream 5000 workout, on the frontend of system 10. If this happens, in some embodiments, this change maybe transmitted to the back end, and the saved data in the back endmodified to remove those active minutes. In some embodiments,de-duplication may be performed on the individual device, anddifferences may be rectified by a type of feedback loop utilizing thebackend, and it's embodiments and individuals manual input may be usedif a conflict cannot be resolved based on data streams alone.

In some embodiments, if OSBAC data stream 4000 is configured to removeand de-duplicate TPSPAC data in such a way to accurately measure activeminutes as well as workout sessions, system 10 may be configured simplyto utilize OSBAC data stream 4000 in calculation and storage of activeminute date.

In some embodiments, if an individual completes a manual workout andadds the data to system 10, system 10 may determine whether this workouthas already been counted, e.g., by OSBAC data stream 4000. In thisregard, system 10 may display a notification to the individual, alertingthem that the workout has already been automatically counted. In someembodiments, individual may be able to modify the automatically detectedworkout data, for example, to increase or decrease the automaticallydetected duration. In some embodiments, no notification may be provided,but the active minutes for the workout simply adjusted in the front endor back end such that an accurate number of active minutes dependentonly on OSBAC data stream 4000 may be provided.

In some embodiments, system 10 may correct for different types ofthird-party data streams. For example, third-party data streams mayarrived at the system having different frequencies. For example, fordata streams that sync with an individual's mobile device havingpriority to sync with that particular mobile device, may reach system 10at a later time or a slower frequency. As another example, somethird-party data streams arrive at system 10 via a backend call made onthe individual's behalf, through specific backend API. As anotherexample, third-party data may be of a different type—a first third-partydata stream may classify activity data as activity levels such as high,medium, low, etc.; a second third-party data stream may classifyactivity data as a data type such as walking, running, still, etc.; evenfurther a third third-party data stream, may have a similar datastructure as one of the first two types of third-party data streams, butmay use different names, or use additional new(s). Finally, anindividual's preference data source may lack some of the data system 10may be “looking for,” such as steps, calories, distance; in this casesystem 10 may or may not merge to data streams together, in order to beas complete as possible. This particular situation may occur when anindividual uses a third-party work cool out, that is reported to asecond, different third-party source, that in turn may feed system 10with data. In this regard, system 10 may decipher and normalize periodsof activity for the individual, and select the best data possible foruse with system 10. AIn some embodiments,

In some embodiments, activity classification may be different betweentwo or more third-party data streams. In some embodiments, data streamsmay be classified as active high, medium, low, etc.; in other datastreams activity may be classified as type of activity, such as walking,running, etc. Moreover, in some embodiments third-party data streams maybe closely related to one another, but different enough to warrantindividual analysis by system 10, in order to determine which actionwithin the algorithm to take. In some embodiments some sources ofthird-party data are more or less reliable, in terms of classificationof particular activities. That is, a first third-party data stream mayprovide more accurate cycling data in a second third-party data stream.In this situation, system 10 may automatically determine whichthird-party data stream to select for a particular activity. In someembodiments, OSBAC data stream 4000 may be used by a TPSPAC data stream5000 for its own calculations. In this case, system 10 may query theTPSPAC data stream 5000 to determine whether it also uses OSBAC datastream 4000 data, and if it is confirmed, system 10 may ignore theTPSPAC data stream 5000 completely in calculations.

As discussed above, in general, back end data is stored hourly, withattributes of ambient active minutes, and workout session data. In someembodiments, additional attributes may be stored in the back end hourlyblock, e.g., 60 separate attributes to account for each minute of anhour. For example, each hour may be labeled with attributes numbering 0through 59, corresponding to the minute. Each of these 60 attributes isconfigured to record a number of Ambient Active Seconds, in someembodiments. In some embodiments, each minute attribute within an hourdata layer and may be added together, excluding workout data taggedwithin the attribute.

In some embodiments, software platform may include a motion parametermodule 1102. In some embodiments, motion parameter module 1102 maydefine ranges or thresholds for activities (e.g., running orcycling-specific speed classifications). In some embodiments, these maybe sensed, for example with a motion sensor such as an accelerometer, orGPS data stream. In some embodiments a particular activity, e.g.,cycling, may be characterized with several threshold points. In someembodiments, motion parameter module 1102 may define or characterizeseparate ranges, e.g., based on the threshold points described herein.

In some embodiments, software platform 1000 may include a GPS parametermodule 1100. In some embodiments, GPS parameter module may be configuredto adjust a third party software platform or an operating systemsoftware platform, e.g., to adjust an electronic device's GPSparameters. For example, software platform may enable “continuous mode”to continuously send a GPS data stream to software platform 1000. Insome embodiments, GPS parameter module 1100 may configure a GPSparameter to enable a GPS data stream to be delivered to softwareplatform 1000 even if the platform is running in the background of theoperating system, or not actively running, for example.

In some embodiments, GPS parameter module 1100 may be configured toadjust one or more of a distance filter and a desired accuracy of a GPSdata stream. In general, setting these parameters to improve thefrequency and accuracy of the GPS data stream increases the rate ofbattery drain. Setting these parameters to decrease the frequency andaccuracy of the GPS data feed generally reduces the rate of batterydrain. In some embodiments, GPS parameter module 1100 may advantageouslybalance these parameters, such that more than one set of parameters maybe applied based on particular inputs. In some embodiments, GPSparameter module 1100 may set a “background” set of parameters fordistance filter and desired accuracy of a GPS stream to be used when thesoftware platform 1000 is running throughout the day while monitoringfor the start of possible activity, such as cycling. The background setof parameters will advantageously increase battery life. In someembodiments, GPS parameter module 1100 may set a “tracking” set ofparameters for distance filter and desired accuracy of a GPS stream tobe used when the software platform 1000 has determined that anindividual may be engaging in an activity such as cycling, which mayincrease fidelity of the data stream, and thus may be more batteryintensive. For example, two sets of parameters are shown below:

BackgroundDistanceFilter=about 250 meters

BackgroundDesiredAccuracy=about 50 meters

TrackingDistanceFilter=about 50 meters

TrackingDesiredAccuracy=about 10 meters

In some embodiments, the GPS parameter module 1100 may automaticallyswitch the GPS parameters to the tracking parameters. In someembodiments, GPS parameter module 1100 may automatically revert to“background” parameters upon a particular event.

In some embodiments, software platform 1000 may include a data streamcommunication module 1104. In some embodiments, data streamcommunication module 1104 may be configured to receive a continuous datastream of motion data, e.g., throughout the day. In some embodiments,the data stream of motion data may include a timestamp, and a speed atdiscrete time intervals, e.g., once per second. For example, a datastream of motion data may include information such as at time-stamp, anda speed or acceleration value, e.g., in order to derive whetherindividual 100 is active, or engaging in a workout for example. In thisregard, sensors included within electronic device 400 (e.g., anaccelerometer, magnetometer, or GPS device within individual's 100mobile phone) may transmit motion data to and/or through data streamcommunication module 1104, as an OSBAC data stream 4000. In someembodiments, data may be transmitted to and/or through data streamcommunication module 1104, such as an TPSPAC data stream 5000. In someembodiments, units of measure may be used, for example miles per hour,and may be configured by an individual 100 according to theirpreference. As shown below, a data stream of motion data may include,for example:

At Time 1, Motion1 (unit of measure)

At Time 2, Motion2 (unit of measure)

At Time 3, Motion3 (unit of measure)

In some embodiments, software platform 1000 may include a motion segmentmodule 1106, such that motion segment module 1106 converts a data streamof motion data as above into a data stream of motion segments. Forexample, the above data stream would be converted to indicate thefollowing information into a data stream of motion segments:

At Time 1, Motion1 (unit of measure) for (Time 2-Time 1) duration

At Time 2, Motion1 (unit of measure) for (Time 3-Time 2) duration

At Time 3, Motion1 (unit of measure) for (Time 4-Time 3) duration

In some embodiments, software platform 1000 may include a density bucketmodule 1108. Once a data stream of motion segments is created, densitybucket module 1108 may process the data stream of motion segments into“minute buckets”, such that the data stream may be “bucketed” (e.g.,categorized/organized) into “buckets” of one minute. That is, densitybucket module 1108 operates to organize the motion segment data streamsuch that each minute bucket represents the “density” of each of themotion classifications within that 1-minute span, and is time-stamped tocoincide with a minute of a particular day. As an example, a minutebucket for MM/DD/YYYY hh:mm may include the following information:

High Motion: 0 secs=0% density

Moderate Motion: 30 secs=50% density

Low Motion: 6 secs=10% density

No motion: 24 secs=40% density

In order to achieve this data breakdown, in some embodiments, softwareplatform may organize minute buckets into an array. In some embodiments,an initial minute bucket may be initialized to all 0% density for eachof the motion categorizations. As the motion segment data stream isreceived, density bucket module 1108 may begin to process the data. Insome embodiments, density bucket module 1108 begins a new minute bucketat a particular timestamp, such that the motion segment data stream iscoextensive with the minute bucket timestamp calculation.

As discussed above, these minute buckets may be only local to electronicdevice 400, and when converting to an hourly data summary the resolutionof minute buckets may be lost, and only the hourly summary transmittedto the back end of software platform 1000.

In some embodiments, software platform 1000 may include a data arraymodule 1110. In some embodiments, as minute buckets are categorized bydensity bucket module 1108, data array module 1110 may accumulate andstore the minute bucket data into an analysis array. As the dataaccumulates into the array, data array module 1110 may further performoperations on the array to determine whether the individual may beactive or not, e.g., walking, or running, or performing some sort ofexercise such as lifting weights. In some embodiments, if the individualis cycling, data array module 1110 will add the active minutes to theongoing daily active minutes tally, and will auto-detect any cyclingworkouts embedded in the same data.

In order to further describe the modules and algorithms applied, thefollowing terms and acronyms are set described.

Candidate Start Density Threshold (“CSDT”), may be defined as thedensity of the activity/motion classification for a minute bucket thatmust be met in order for that minute to be considered a candidate forthe start of particular activity or inactivity, for example, 60%.

Minimum Time Inactive (“MTI”) may be defined as the minimum inactivetime required after activity before the algorithm considers possibleactivity to have ended, for example, 9 minutes. In some embodiments, MTImust be evenly divisible by 3. In some embodiments, MTI may beconfigured by individual 100. In some embodiments, this may trigger aseparate event saved as a time of non-activity, e.g., not activeminutes.

Inactive Average Density Threshold (“IADT”) may be defined as theaverage activity density across a sequence of minute buckets that mustnot be exceeded in order for the algorithm to consider that sequence tobe inactive, for example, 10%.

Maintenance Average Density Threshold (“MADT”) may be defined as theaverage active density across a sequence of minute buckets that must bemet in order for the algorithm to consider that sequence to bemaintaining the activity, for example, 50%.

Minimum Time Active (“MTA”) may be defined as the minimum time activerequired before a segment of data is considered a workout, or session.For example, MTA may be set such that the algorithm does not countactivity identified as a workout or session unless it lasts for 10minutes or longer. In some embodiments, MTA may be configured by theindividual 100. In some embodiments, a lower threshold MTA may be setsuch that it is not configurable by individual 100, e.g., at least 10minutes. In some embodiments, if activity is detected that do not meet alower threshold MTA, their minute buckets may be re-classified asambient active minutes, and not reported in automatically detectedworkout minutes.

In some embodiments, software platform 1000 may include an arrayanalysis module 1112. In this regard, data array module 1110 may be usedto feed data into data analysis module, such that a sequential flow ofchronologically ordered speed density minute buckets, each bucketarriving as an “event”.

In some embodiments, as the minute buckets are received by the dataarray module 1110, in order to initialize the storage of the minutebucket, data array module 1110 may determine if the minute bucket arrayis currently empty, and if so, determine if the array includes speedclassifications that are not likely ambient activity or workoutactivity, e.g., if the event includes very high speeds, or if thedensity does not meet the Candidate Start Density Threshold. If one ormore of these tests indicate that there is no activity, data arraymodule 1110 may be configured to not store that particular minutebucket, and await the next minute bucket to be received by the dataarray module 1110. These calculations may be performed in array analysismodule 1112, for example. In some embodiments, if the array includesinformation that may be relevant to activity, e.g., the Candidate StartDensity Threshold is met by the current minute bucket, or has been meetby a previous minute bucket, the subject minute bucket may be storedeither as the first entry in the array, or append the minute bucket tothe end of the array.

In some embodiments, array analysis module 1112 may check whether thereis an inactive section at the end of the minute bucket, e.g., whether atthe end of the timestamp of the minute bucket there is data relevant tothe Minimum Time Inactive calculation, below the Inactive AverageDensity Threshold. In some embodiments, this check may aid indetermining when to close the data array, e.g., when MTI indicates thatan activity has likely ended. In some embodiments, array analysis module1112 may analyze the data array, such that the algorithm reviews thedata array from zero to the length of the minute bucket array, oroptionally one less than the length of the minute bucket array. In someembodiments, this check may result in a true or false result. Arrayanalysis module 1112 may assign a marker to a minute bucket indicatingthat while there was no cycling detected in a particular minute bucket,the minute bucket is adjacent to a minute bucket including activity, andthe MTI has not yet been reached.

In some embodiments, array analysis module 1112 may determine there isactivity within a particular minute bucket. Once array analysis module1112 has determined there is activity within a minute bucket, arrayanalysis module 1112 may then further analyze the array to determinewhether there is a workout that should be automatically detected. If noworkout exists within the array, then the array analysis module 1112 maybe configured to take no further action, and simply report activeminutes (e.g., ambient active minutes not associated with a workout). Ifa workout exists within the array, the array analysis module 1112 may beconfigured to report the workout or session, and add those minutes tothe total active minutes.

In some embodiments, software platform 1000 may include reset module1116. In some embodiments, once an array is fully processed, resetmodule 1116 may reset the algorithm. For example, reset module 1116 maydelete data within an analysis array, or may begin the process again ofstoring the data within an array, or analyzing an array. In someembodiments, reset module 1116 may check each minute bucket entry in thearray, and if an array includes activity or motion segments that are notconsistent with activity or non-activity, reset module 1116 may mark theminute bucket to identify that there is likely not activity within thatparticular minute bucket, perhaps due to automotive or transit activity(e.g., prior to any new entries added to the array).

In some embodiments, reset module 1116 may mark or reset any minutebucket having activity or motion segments that are too high to be, forexample, running or cycling, as not active minutes. In some embodiments,a separate test may be performed, such that only if a speed segment ismuch higher than cycling speed for a particular duration threshold,e.g., 2 seconds, for example to account for spurious spikes in speed. Insome embodiments, the test may return a true or false indication. Insome embodiments, reset module 1116 may reset the array if GPS parametermodule 1100 sets the GPS parameters to the background parameters.

Turning back to array analysis module 1112, in some embodiments, arrayanalysis module 1112 may calculate the total active duration in seconds,over a range of minute bucket entries in an array. In some embodiments,array analysis module 1112 may then convert this information into activeminutes, or may convert this information into an hourly data summary(e.g., to be transmitted to back end).

In some embodiments, array analysis module 1112 may determine whether anend section of an array includes minute buckets having an averagedensity below the Inactive Average Density Threshold, and mark or countthis minute bucket towards the Minimum Time Inactive threshold. In someembodiments, this can mean that there are both active and inactive dataduring those minute buckets. In some embodiments, analysis module mayanalyze the current length of a minute bucket array, and if the currentlength is greater than the Minimum Time Inactive threshold, thenanalysis module may begin to review whether after the start of thepotential inactive section continues, such that the MTI is reached. Ifduring this time, the average density is greater than IADT, then thearray analysis module 1112 determines that MTI has not been reached, andthe calculation may be restarted if an inactive section arrives at theend of a minute bucket within the array.

In some embodiments, analysis module 1112 may analyze the array todetermine if there are sections within the array (e.g., consecutiveminute buckets) that include density greater than Candidate StartDensity Threshold within a given section of the array, and if theaverage density is greater than Maintenance Average Density Threshold,then there is activity or a workout/session through that range of thearray.

In some embodiments, software platform 100 may include a confirmationmodule 1114. In some embodiments, once a section of an array isidentified that may include activity, confirmation module 1114 may applyadditional tests on the data. For example, If there are other patternswithin the section of the array that indicate automotive travel, forexample, confirmation module 1114 may determine that a portion of thearray analyzed is not activity. For example, if the array indicates thatthere are automobile or transit speeds longer than about 15 seconds,this may indicate automotive or transit travel (rather than a fastdescent on a bicycle or data anomaly). In some embodiments, confirmationmodule 1114 may compare the data array section to another data set froma separate data stream, e.g., a running speed data stream. In thisregard, confirmation module 1114 may determine whether a portion of thearray indicating cycling activity is actually fast running activity.

In some embodiments, array analysis module 1112 may determine if anarray contains a cycling workout. In some embodiments, array analysismodule 1112 limits this calculation to a portion of an array alreadydetermined to include activity. analysis module 1112 may analyze thearray to determine if there are sections within the array (e.g.,consecutive minute buckets) that include density greater than CandidateStart Density Threshold within a given section of the array, and if theaverage density is greater than Maintenance Average Density Threshold,then there is activity through that range of the array, and if theminute buckets add up to at least the Minimum Time Active, then there isa workout in a portion of the array. In some embodiments, system 10 may“round up” and increment the total workout minutes by one minute, e.g.,to account for a likelihood that there may be some activity that fellinto the bucket just prior to or just after the first determined workoutbucket that satisfies the starting minute threshold. In someembodiments, the algorithm applied applies these inferences, by reducingthe user set Minimum Time Active by one minute or two minutes within thealgorithm code.

In some embodiments, similar calculations may be performed such that“not-workouts” may be identified, e.g., marked blocks of time thatcorrespond to non-workout activity. In some embodiments, these blocksmay also include hourly summaries, or may be included as a separatelayer or attribute within the active minute hourly summary that is savedto the back end. In this regard, in some embodiments, if a workout fromTPSPAC data stream 5000 is incoming, the “not-workout” layers may becompared and resolved such that only one instance of active minute iscalculated by system 10. If a particular minute within a workout from aTPSPAC data stream 5000 is within a not-workout layer, the system 10 maycount this minute as active. If it is not, however, then that means thatthe system 10 has included it as an active minute, e.g., through OSBACdata stream 4000, and it should not be counted. This will effectivelyignore minutes coming from a TPSPAC data stream 5000 that wouldotherwise be double counted. Advantageously, no minute-bucked data needbe saved in the back end for this calculation, and the calculation maybe run at any given time

As described above, in some embodiments, software platform 1000 maycommunicate with a third party software platform 2000, or an operatingsystem software platform 3000, and exchange and or utilize data streamsor settings from these or other software platforms. In some embodiments,third party software platform 2000 or software platform 3000 may beutilized by system 10 (and software platform 3000) to effect one or moreof the above described modules. For example, in some embodiments,operating system software platform 3000 may provide a notification tosoftware platform 1000, for example when individual 100 has traveled asignificant distance after some time (e.g., about 500 meters, over about5 minutes.). In some embodiments, software platform 1000 may default tothe background parameters set within GPS parameter module. If operatingsystem software platform 3000 or third party software platform 2000indicates that an individual 100 has traveled a significant distanceafter some time, the GPS parameter module 1100 may automatically switchthe GPS parameters to the tracking parameters. In some embodiments, GPSparameter module 1100 may automatically revert to “background”parameters upon a particular event that indicates an individual may notbe cycling or running, for example (e.g., speed near zero for asufficient amount of time, speed far too fast to indicate cycling,etc.).

In some embodiments, system 10 may include an add activity/add workoutmodule 1118. Add workout module 1118 may include, for example, recentactivities added, or popular workouts for an individual to select. Asshown, certain activities may include icons representative of theactivity, e.g., a simplified mountain icon for a hiking activity, aflower icon for yoga activity, a simplified bicycle for cycling, etc. Asshown, add workout module 1118 may be used to select a type of workout,name of workout, date of activity, time of activity, duration ofactivity, intensity of activity, location of activity, etc. In someembodiments, individual 100 may be able to search for particularworkouts, e.g., through a network, or internet, for example. In someembodiments, intensity of activity may specify a general intensity forthe whole workout, such as “Low”, “Medium”, “High”. In some embodiments,these intensities will be used to help system 10 daily calories, ordaily active calories. In some embodiments, the intensities may be usedto track difficult and easy days. In some embodiments, the activitiesmay be editable, such as through swiping or tapping on therepresentative GUI, and may edit the content described. In someembodiments, an individual 100 may not be able to edit activities thatare auto-tracked via system 10. In some embodiments, analysis module maycompare data from the add activity/add workout module, such thatautomatically detected activity, e.g., cycling activity, cyclingsessions, or cycling workouts are not counted twice, for example withthe automatic detection as well as a manually added activity.

Various software modules of the present invention may support graphicaluser interfaces (GUIs) through which an individual 100 can interact withthe system 10. A GUI may offer, for example, graphical elements, visualindicators, and/or text to represent information and actions availableto the individual 100. The individual 100 may use a physical inputdevice, such as keyboard or scroll ball to interact with the GUI of theelectronic device 400. Alternatively, the individual 100 may use a touchscreen to interact directly with what is displayed. Various touchscreens such as, for example, resistive or capacitive touch screens, maybe employed. Those skilled in the art will appreciate that alternativeor additional software modules and sub-modules may be implemented inorder to provide or extend the described or additional functionalitiesto the individual 100 using the electronic device 400. For example, thesoftware configuration of software stored on an electronic device 400may include a device operating system, which may be one of thecommercially available mobile phone operating systems such as, forexample, BlackBerry OS, iPhone OS, Windows Mobile, Symbian, LINUX,WebOS, or Android. The device operating system may also have anassociated application programming interface through which middlewareand application programs may access the services of the operatingsystem.

The various modules of the system 10 of the present invention maysupport GUIs through which an individual 100 can interact with thesystem 10 using the electronic device 400 just prior to and/or during anactivity. As will be appreciated by those of skill in the art, in oneembodiment the GUIs may be supported by a mobile device applicationbeing run on the electronic device 400. In another embodiment, the GUIsmay appear as web pages provided by the server via a website that may beaccessible to the individual 100 over the network using a web browser ontheir electronic device 400. The GUIs may be considered to be part ofthe methods or systems of the present invention.

In order to access the features of embodiments of the present inventionjust prior to or during a physical activity, the individual 100 usingthe electronic device 400 may power on their electronic device 400 if itis not already in a powered up state. In some embodiments, it may benecessary for the individual 100 to manipulate user input controls toenter system 10 mode to access the application software.

After launching the application software, the individual 100 may causedifferent GUI pages to be provided by different modules by selectingtheir corresponding icons using user input controls. Additional iconscorresponding to sub-modules or program wizards associated with aparticular module may pop up or otherwise be displayed to the individual100 if the individual 100 selects, swipes, or hovers over a module iconwith a cursor. All modules may have one or more sub-modules which may benavigated to and from by clicking, swiping, etc. All modules may haveone or more sub-modules which may be navigated to and from by clicking,swiping, etc. In some embodiments, the system may allow the individual100 one of upload photos, videos, medical records, and the like forincorporation into the system.

In some embodiments, individual 100 may opt-in to enable tracking ofactive minutes, which may be achieved directly through electronic device400, sensor module 102, or the like. In some embodiments, there may bean additional module or sub-module to allow access to additional data,for example, data sources particular to a mobile device operatingsystem, or third party data sources, as described herein. As shown,these sources may enable data sources such as sleep data, step data,walking/running distance, weight data, and other data for analysis bysystem 10. In some embodiments, this may include access to data measuredby electronic device 400 (e.g., a mobile phone carried by individual100). In some embodiments, data may include number of steps, distancewalked, workout data, active calories (e.g., based on active minutes andworkout intensities), location data, weight, nutrition data, hydrationdata, sleep data (e.g., “asleep data,” “in bed” data, etc.), 3^(rd)party data from additional devices or applications, etc. In someembodiments, individual 100 may sync software platform 1000 with thirdparty data or devices during on-boarding (e.g., first time startup), orat a later time within the settings of software platform 1000, forexample, or the electronic device's 400 settings.

Modules may display a type of athletic activity icon set that may beused to convey various pieces of information to the individual 100, andfrom which the individual 100 can select types of activity they willparticipate in or have participated in. In some embodiments, there maybe selection icons for the types of surfaces that the activity will takeplace on (e.g. road/sidewalk, treadmill, trail, and everywhere). Ineither case, individuals may be able to select multiple icons to denoteintended environment and use. In some embodiments, modules may providefor goal definition, for example athletic goals such as training for arace, or other sporting event, improving individual fitness, simplyenjoy running, or the like.

Frequency intervals may include for example about 1-2 times per week,about 3-4 times per week, about 5-7 times per week, or the individualdoesn't know. Length intervals may include for example about less thanabout 5 miles per week, about 5-10 miles per week, about 10-20 miles perweek, greater than about 20 miles per week, or the individual doesn'tknow. Examples of intended athletic terrain environments may includeroads, track, treadmill, trail, gym, or particular athletic fieldsdesigned for a specific sport. In some embodiments, system 10 may allowthe individual 100 to select a location of any prior injuries within acertain period of time. The system 10 may include selection iconscorresponding to particular body parts. In some embodiments, the systemmay display a graphical representation of an individual or avatar, andallow the individual 100 to directly select the particular area with aprevious injury on the graphical representation. In some embodiments,the system may allow the individual 100 to one of upload photos, videos,medical records, and the like for incorporation into the system andmethods.

Embodiments of the present invention may incorporate features of motionand performance monitoring systems. Exemplary motion monitoring andperformance systems are disclosed in commonly owned U.S. patentapplication Ser. No. 13/077,494, filed Mar. 31, 2011 (which published asU.S. Patent App. Pub. No. 2012/0254934), and commonly owned U.S. patentapplication Ser. No. 13/797,361, filed Mar. 12, 2013 (which published asU.S. Patent App. Pub. No. 2014/0266160), the entirety of each beingincorporated herein by reference thereto.

An overview of exemplary embodiments of components of the system 10 ofthe present invention, including exemplary sensor modules 102, has beenprovided above.

Turning to FIG. 4, a block diagram of components of a sensor module 102according to some embodiments of the present invention is shown. In theillustrated embodiment, the sensor module 102 may include processor 110(processor 110 may also be a separate component). Sensor module 102 mayinclude a power source 140, a memory 138, an acceleration sensor 142, amagnetic field sensor 146, and a transceiver 112 (transceiver 112 may bea separate component). These components are operatively connected to oneanother to carry out the functionality of the sensor module 102. Inother embodiments, one or more of these sensor module 102 components maybe omitted, or one or more additional components may be added. Processor110 may be included in sensor module 102, or may be a separatecomponent. Processor 110 may be adapted to implement applicationprograms stored in the memory 138 of the sensor module 102. Theprocessor 110 may also be capable of implementing analog or digitalsignal processing algorithms such as raw data reduction and filtering.For example, processor 110 may be configured to receive raw data fromsensors and process such data at the sensor module 102. The processor110 is operatively connected to the power source 140, the memory 138,the acceleration sensor 142, the magnetic field sensor 146, and thetransceiver 112.

In an embodiment, calibration of sensor module 102 is performed using,for example, received GPS signals from a position receiver 130. Thereceived GPS signals can be used, for example, to determine a distancethat an individual runs or walks during a workout.

The power source 140 may be adapted to provide power to the sensormodule 102. In one embodiment, the power source 140 may be a battery.The power source may be built into the sensor module 102 or removablefrom the sensor module 102, and may be rechargeable or non-rechargeable.In some embodiments, the power source 140 may be recharged by a cableattached to a charging source, such as a universal serial bus (“USB”)FireWire, Ethernet, Thunderbolt, or headphone cable, attached to apersonal computer. In another embodiment, the power source 140 may berecharged by inductive charging, wherein an electromagnetic field isused to transfer energy from an inductive charger to the power source140 when the two are brought in close proximity, but need not be pluggedinto one another via a cable. In some embodiment, a docking station maybe used to facilitate charging. In other embodiments, the sensor module102 may be repowered by replacing one power source 140 with anotherpower source 140.

The memory 138 may be adapted to store application program instructionsand to store athletic activity data. In some embodiments, the memory 138may store application programs used to implement aspects of thefunctionality of the system 10 described herein. In one embodiment, thememory 138 may store raw data, recorded data, and/or calculated data. Insome embodiments, as explained in further detail below, the memory 138may act as a data storage buffer. The memory 138 may include both readonly memory and random access memory, and may further include memorycards or other removable storage devices.

In some embodiments of the present invention, the memory 138 may storeraw data, recorded data, and/or calculated data permanently, while inother embodiments the memory 138 may only store all or some datatemporarily, such as in a buffer. In one embodiment of the presentinvention, the memory 138, and/or a buffer related thereto, may storedata in memory locations of predetermined size such that only a certainquantity of data may be saved for a particular application of thepresent invention.

The acceleration sensor 116 may be adapted to measure the accelerationof the sensor module 102. Accordingly, when the sensor module 102 isphysically coupled to an object such as electronic device 400, forexample, or individual 100, the acceleration sensor 116 may be capableof measuring the acceleration of the object, including the accelerationdue to the earth's gravitational field. In one embodiment, theacceleration sensor 116 may include a tri-axial accelerometer that iscapable of measuring acceleration in three orthogonal directions. Inother embodiments one, two, three, or more separate accelerometers maybe used.

The magnetic field sensor 146 may be adapted to measure the strength anddirection of magnetic fields in the vicinity of the sensor module 102.Accordingly, sensor module 102, utilizing the magnetic field sensor 146,may be capable of measuring the strength and direction of magneticfields in the vicinity of the individual 100, including the earth'smagnetic field. In one embodiment, the magnetic field sensor 146 may bea vector magnetometer. In other embodiments, the magnetic field sensor146 may be a tri-axial magnetometer that is capable of measuring themagnitude and direction of a resultant magnetic vector for the totallocal magnetic field in three dimensions. In other embodiments one, two,three, or more separate magnetometers may be used.

In one embodiment of the present invention, the acceleration sensor 116and the magnetic field sensor 146 may be contained within a singleaccelerometer-magnetometer module bearing model number LSM303DLHC madeby STMicroelectronics of Geneva, Switzerland. In other embodiments, thesensor module 102 may include only one of the acceleration sensor 116and the magnetic field sensor 146, and may omit the other if desired.

The transceiver 122 depicted in FIG. 4 may enable the sensor module 102to wirelessly communicate with other components of the system 10, suchas those described in further detail below. In one embodiment, thesensor module 102 and the other local components of the system 10 maycommunicate over a personal area network or local area network using,for example, one or more of the following protocols: ANT, ANT+ byDynastream Innovations, Bluetooth, Bluetooth Low Energy Technology,BlueRobin, or suitable wireless personal or local area networkprotocols. Other known communication protocols suitable for a system 10may also be used. In one embodiment, the transceiver 122 is a low-powertransceiver. In some embodiments, the transceiver 122 may be a two-waycommunication transceiver 122, while in other embodiments thetransceiver 122 may be a one-way transmitter or a one-way receiver.Wireless communication between the sensor module 102 and othercomponents of the system 10 is described in further detail below. Inother embodiments, the sensor module 102 may be in wired communicationwith other components of the system 10 that does not rely on transceiver122.

In some embodiments of the present invention, a sensor module 102 havingcomponents such as those depicted in FIG. 4 may be physically coupled toindividual 100. Sensor module 102 may further monitor changes in thespatial orientation of the individual's 100 body or a piece of theindividual's athletic equipment or article of footwear, or to determinea correlation between body or equipment movement data and acharacteristic such as gait characteristic. In some embodiments,additional sensors not coupled to individual 100 (e.g., otheracceleration sensors, physiological sensors, etc.) may be responsiblefor collecting the data necessary to carry out the various monitoringcalculations.

In some other embodiments, however, it may be desirable to haveadditional sensors 148 (for example, such as speed sensors, etc.)included within the sensor module 102, or operatively connected tosensor module 102, or to have additional sensors in communication withthe sensor module 102. In some embodiments, an additional sensor module102 may be integrated within an existing piece of athletic activitymonitoring equipment possibly having additional or different sensorssuch as, for example, a heart rate monitoring device, a pedometer, andaccelerometer-based monitoring device, or other fitness monitoringdevice.

In one embodiment, sensor modules 102 according to the present inventionare used to detect changes in an individual's direction of motion.Sensor modules 102 according to the present invention can also be wornby individuals and used to detect and/or track other motions such as,for example, motions associated with push-ups, pull-ups, weightlifting,diving, gymnastics, et cetera.

In addition to the acceleration sensor 116 and the magnetic field sensor118, other sensors that may be part of the sensor module 102 or separatefrom but in communication with the sensor module 102 and may includesensors capable of measuring a variety of athletic performanceparameters. The term “performance parameters” may include physicalparameters and/or physiological parameters associated with theindividual's 100 athletic activity. Physical parameters measured mayinclude, but are not limited to, time, distance, speed, pace, pedalcount, wheel rotation count, rotation generally, stride count, stridelength, airtime, stride rate, altitude, strain, impact force, jumpforce, force generally, and jump height. Physiological parametersmeasured may include, but are not limited to, heart rate, respirationrate, blood oxygen level, blood lactate level, blood flow, hydrationlevel, calories burned, or body temperature.

While various embodiments of the present invention are described in thecontext of the general health and wellness in terms of activity,nutrition, mindset, and rest, the present invention is not so limitedand may be applied in a variety of different sports or athleticactivities including, for example, running, sports of soccer (i.e.,football), basketball baseball, bowling, boxing, cricket, cycling,football (i.e., American football), golf, hockey, lacrosse, rowing,rugby, running, skateboarding, skiing, surfing, swimming, table tennis,tennis, or volleyball, or during training sessions related thereto. Insome embodiments, the system may make recommendations regarding articlesof apparel or other sports equipment in addition to, or in substitutionof articles of footwear.

As shown in FIG. 3, in some embodiments, sensor module 102 mayincorporate other additional components. In some embodiments, sensormodule 102 may incorporate an angular momentum sensor 124, a heart ratesensor 126, a temperature sensor 128, a position receiver 130, a dataport 132, a timer 134, and a vision sensor 108 operatively connected toone another to carry out the functionality of the sensor module 102. Inother embodiments, one or more of these sensor module 102 components maybe omitted, or one or more additional components may be added.

In view of the above discussion, it is apparent that various processingsteps or other calculations recited herein may be capable of beingperformed by various embodiments of the system 10 disclosed herein, andare not necessarily limited to being performed by the sensor module 102,depending on the configuration of a particular embodiment of the presentinvention. For example, any of the processing steps or othercalculations recited herein may be performed, in various embodiments, bythe sensor module 102, by a server computer 604, by an electronic device400, and/or any other network component, or by more than one component.

Embodiments of the present invention may involve the use of so-called“cloud computing.” Cloud computing may include the delivery of computingas a service rather than a product, whereby shared resources, software,and information are provided to computers and other devices as a utilityover a network (typically the Internet). Cloud computing may entrustservices (typically centralized) with an individual's 100 data, softwareand computation on a published application programming interface over anetwork. End users may access cloud-based applications through a webbrowser or a light weight desktop or mobile app while the businesssoftware and data are stored on servers at a remote location. Cloudapplication providers often strive to give the same or better serviceand performance than if the software programs were installed locally onend-user computers.

In some embodiments, the transceiver 122 may be a two-way communicationtransceiver 122, while in other embodiments the transceiver 122 may be aone-way transmitter or a one-way receiver.

The user interface 136 of the sensor module 102 may be used by theindividual 100 to interact with the sensor module 102. In someembodiments, the user interface 136 may include one or more inputbuttons, switches, or keys, including virtual buttons, switches, or keysof a graphical user interface touch screen surface. The function of eachof these buttons, switches, or keys may be determined based on anoperating mode of the sensor module 102. In one embodiment, the userinterface 136 may include a touch pad, scroll pad and/or touch screen.In another embodiment, the user interface 136 may include capacitanceswitches. In a further embodiment, the user interface 136 may includevoice-activated controls.

In some embodiments, however, the sensor module 102 may not include auser interface 136. In these embodiments, the sensor module 102 may becapable of communicating with other components of the system 10 whichmay themselves include user interfaces, for example, electronic device400.

The angular momentum sensor 124, which may be, for example, a gyroscope,may be adapted to measure the angular momentum or orientation of thesensor module 102. Accordingly, when the sensor module 102 is physicallycoupled to user 100, the angular momentum sensor 124 may be capable ofmeasuring the angular momentum or orientation of the user. In oneembodiment, the angular momentum sensor 124 may be a tri-axial gyroscopethat is capable of measuring angular rotation about three orthogonalaxes. In other embodiments one, two, three, or more separate gyroscopesmay be used. In some embodiments, the angular momentum sensor 124 may beused to calibrate measurements made by one or more of the accelerationsensor 116 and the magnetic field sensor 146.

The heart rate sensor 126 may be adapted to measure an individual's 100heart rate. The heart rate sensor 126 may be placed in contact with theindividual's 100 skin, such as the skin of the individual's chest, andsecured with a strap. The heart rate sensor 126 may be capable ofreading the electrical activity the individual's 100 heart.

The temperature sensor 128 may be, for example, a thermometer, athermistor, or a thermocouple that measures changes in the temperature.In some embodiments, the temperature sensor 128 may primarily be usedfor calibration other sensors of the system 10, for example, theacceleration sensor 116 and the magnetic field sensor 146.

In one embodiment, the position receiver 130 may be an electronicsatellite position receiver that is capable of determining its location(i.e., longitude, latitude, and altitude) using time signals transmittedalong a line-of-sight by radio from satellite position systemsatellites. Known satellite position systems include the GPS system, theGalileo system, the BeiDou system, and the GLONASS system. In anotherembodiment, the position receiver 130 may be an antenna that is capableof communicating with local or remote base stations or radiotransmission transceivers such that the location of the sensor module102 may be determined using radio signal triangulation or other similarprinciples. In some embodiments, position receiver 130 data may allowthe sensor module 102 to detect information that may be used to measureand/or calculate position waypoints, time, location, distance traveled,speed, pace, or altitude.

The data port 132 may facilitate information transfer to and from thesensor module 102 and may be, for example, a USB port. In some exemplaryembodiments, data port 132 can additionally or alternatively facilitatepower transfer to a power source, in order to a charge power source.

The timer 134 may be a clock that is capable of tracking absolute timeand/or determining elapsed time. In some embodiments, the timer 134 maybe used to timestamp certain data records, such that the time thatcertain data was measured or recorded may be determined and varioustimestamps of various pieces of data may be correlated with one another.

In some embodiments, the sensor module 102 may also include a buttonand/or a display. The button may serve as the user interface of thesensor module 102. The button may be capable of turning the sensormodule 102 on and off, toggling through various display options, orserving a variety of other functions. Alternatively, multiple buttons orno buttons may be provided. In one embodiment, the display may be arelatively simple LED display that is capable of conveying the status orbattery life of the sensor module 102 to an individual 100 withdifferent color combinations or flashing patterns, for example. Inanother embodiment, the display may be a more advanced display that iscapable of displaying performance parameter information, feedback, orother information to the individual 100, such as a segmented LCDdisplay. Alternatively, no button or display may be provided.

In other embodiments, the sensor module 102 may include audio controlssuch as a speaker and/or microphone for audio communication with anindividual 100. These components may serve as the user interface of thesensor module 102, and may be included an audio input system. Theseaudio controls may be capable of turning the sensor module 102 on andoff, toggling through various display options, or serving a variety ofother functions. In one embodiment, the audio controls may be capable ofconveying the status or battery life of the sensor module 102 to anindividual 100. In another embodiment, the audio controls may be capableof outputting or receiving performance parameter information, feedback,or other information to and from the individual 100. In one embodiment,the audio controls may be capable of accepting voice commands form theindividual 100. In another embodiment, the sensor module 102 may becapable of relaying audio information to an individual wirelessly viaanother device, such as a pair of headphones. Alternatively, audiocontrols may be provided.

Data obtained by the sensor module 102 may be processed in a variety ofways to yield useful information about the motion of an object ofinterest during the activity, e.g., individual 100. In some embodiments,sensor module 102 data may be processed to monitor changes in thespatial orientation of the individual's 100 body or a piece of theindividual's 100 athletic equipment. In other embodiment, sensor module102 data may be processed to by reference to a predetermined correlationbetween movement data and a characteristic stored in a data structure.

In some embodiments, sensor modules 102 are used to detect changes in anindividual's direction of motion. Sensor modules 102 according to thepresent invention can also be worn by individuals and used to detectand/or track other motions such as, for example, motions associated withpush-ups, pull-ups, weightlifting, diving, gymnastics, et cetera.

Turning to FIG. 4, a block diagram of electronic device 400 according toan embodiment of the present invention is shown. In an embodiment,electronic device 400 corresponds to a mobile computing device, mobilephone, desktop computer, tablet computer, dedicated electronic device,or the like. As shown in FIG. 4, electronic device 400 may include aprocessor 402, memory 406, a user input control 408, a display 410, anaudio unit 416, a transceiver 404, a cellular transceiver 414, anoptional satellite-based positioning system receiver 412, a camera 418,and a battery 420.

Processor 402 is a processor capable of implementing applicationprograms or software platforms 1000 stored in memory 406. Processor 402is also capable of implementing digital signal processing algorithms.Processor 402 is coupled to memory 304, user input control 408, display410, audio unit 416, transceiver 404, and may include a cellulartransceiver 414.

Memory 406 is used to store application program instructions (e.g.,software platform 1000) and data. In an embodiment, memory 406 storesprograms, for example, used to implement all of the functionality of atypical electronic device. In an embodiment, memory 406 includes bothread only memory and random access memory.

User input control 408 is used by an individual to interact withelectronic device 400. In an embodiment, user input control 408 includesa variety of input buttons and/or keys. The function of each of thesebuttons and/or keys is typically determined based on an operating modeof electronic device 400. In one embodiment, user input control 408includes a touch pad or scroll pad and/or touch screen buttons.

Display 410 is used to display information to an individual. In anembodiment, display 410 is a liquid crystal display.

Camera 418 is a small digital camera used to take digital photos orvideo. In one embodiment, camera 418 is a CCD camera. In anotherembodiment, camera 418 is a CMOS camera.

Audio unit 416 is used to process audio signals. In an embodiment, voicesignals picked up using a microphone are converted to digital signals sothat they can be operated upon, for example, by processor 402. Audiounit 416 also converts, for example, digital audio signals intoamplified analog audio signals that can be used to drive one or morespeakers. In an embodiment, audio unit 416 implements signal processingalgorithms such as those available from Dolby Laboratories, Inc., whichenhance the quality of music.

Transceiver 404 is a low-power transceiver used to communicate withother components of system 10. In an embodiment, transceiver 404operates in an unlicensed frequency band such as 2.4 GHz. Transceiver404 is coupled to an antenna 314. As used herein, the term transceivermeans a combination of a transmitter and a receiver. In an embodiment,the transmitter and the receiver are integrated and form, for example, apart of an intergraded circuit.

Cellular transceiver 414 may be used to send and receive, for example,voice cellular telephone signals. Transceiver 414 can also be used toexchange information with a computer network such as, for example, theInternet. Cellular transceiver 414 is coupled to an antenna 422. As usedherein, the term cellular transceiver means a combination of a cellulartransmitter and a cellular receiver. In an embodiment, the transmitterand the receiver are integrated together into a single device.

In one embodiment, cellular transceiver 414 is used to send datadescribed herein to a location where it is analyzed, for example, by aprofessional trainer. The professional trainer can call or text messagethe individual and provide the individual substantially real-timefeedback based on the data. If the individual wants to call theprofessional trainer, for example, during a workout, the individual canplace a call to the professional trainer, for example, by tappingelectronic device 400 to place a call to a stored telephone number. Inone embodiment, tapping electronic device 400 sends a text message tothe professional trainer requesting that the professional trainer callthe individual. These functions may also be included in sensor module102.

Battery 420 is used to provide power to operate the various componentsof electronic device 400. In an embodiment, battery 420 is rechargedperiodically using a power adapter that plugs into a typical householdpower outlet. Battery 420 can also be a non-rechargeable battery.

In an embodiment, electronic device 400 also includes an optionalsatellite-based positioning system (e.g., global positioning system(GPS) or Galileo system) receiver 412. This enables the electronicdevice to determine its location anywhere on the earth. Thesatellite-based positioning system (e.g., GPS) receiver 412 is coupledto an antenna 424. In an embodiment, GPS receiver 412 enables theelectronic device 400, for example, to provide navigational instructionsto a runner using the device. The directions for a running route can bedownloaded to the electronic device prior to a run and stored in memory406. In addition to navigational instructions, attributes about therunning route such as, for example, whether the route has sidewalks, ison a trail, is located within a safe neighborhood, et cetera, can alsobe downloaded and viewed. GPS receiver 412 can be used, in anembodiment, to track a route run by a runner. The route can be saved inmemory 304 and viewed by the runner after the run. The route can also beshared with other runners, for example, by posting the route on acomputer/web server for down-loading by other runners.

In an embodiment, GPS receiver 412 and information stored in the memoryof electronic device 400 (or information received, e.g., from theinternet using cellular transceiver 414) are used to providenavigational instructions, for example, to a runner. In an embodiment,the runner can enter into electronic device 400 that he or she wouldlike to run five kilometers, for example, and the electronic device willautomatically select/map-out an appropriate route and provide navigationinstructions to the runner during the run. In an embodiment, the runnercan specify both a start point and a stop point for the run. In anembodiment, only one point is specified, which serves as both the startpoint and the stop point. In an embodiment, the start and stop pointsare the point at which the runner is standing (e.g., as determined byGPS receiver 412) when the runner enters, for example, that he or shewould like to run five kilometers.

In an embodiment, electronic device 400 includes a radio. The radio canbe an AM only radio, an FM only radio, or both an AM and FM radio. In anembodiment, the radio is controlled using soft keys presented to anindividual on display 410.

In one embodiment, electronic device 400 includes optional sensors (notshown) for detecting selected weather related data such as, for example,temperature, humidity, ultra-violet radiation and/or barometricpressure. This data can be used, for example, to determine how anindividual's performance is effected by environmental factors.

In one embodiment, an electronic device according to the presentinvention does not include a display. In this embodiment, informationsuch as, for example, performance and/or feedback information isprovided to an individual audibly during a workout, e.g., through sensormodule 102, or other audio feedback. The information can be display tothe individual, for example, after the workout using a computer displayonce the information has been transferred to the computer. In anembodiment, the information can be transferred to a second processingdevice such as, for example, a sports watch during the workout anddisplayed to the individual during the workout on the display of thesecond processing device.

In embodiments, an electronic device 400 according to the presentinvention can be formed, for example, by attaching a dongle (e.g., asmall hardware device that protects software) to a conventional phone, amusic file player, a personal digital assistant, et cetera. The dongleincludes, for example, downloadable software that implements some or allof the sport functions described herein. In an embodiment, the softwareincludes a sport user interface written in the Java programminglanguage. In an embodiment, the software includes drivers, for example,that enable the software to be used with any ultra low power Bluetoothcommunications protocol compatible device. Other embodiments arecompatible with other communications protocol compatible devices.

In an embodiment of the present invention, a electronic device accordingto the present invention is a dedicated device (rather than a devicesuch as, for example, a phone, a music file player, or a personaldigital assistant) that implements the functions as detailed herein.

In some embodiments, the sensor module 102 may then determine that themovement of an individual 100 indicates the occurrence of a movement totrack. In one embodiment, the determination that the movement of theindividual 100 indicates the occurrence of a movement to track occurswhen a threshold data value is met for a predetermined period of time.For example, the sensor module 102 may determine that a movement of theindividual has resulted in a threshold acceleration occurring for apredetermined period of time.

In some embodiments, remote processing may be used to augment theprocessing discussed herein. The remote processing may enable a sensormodule 102 to wirelessly transmit data to a remote computer forprocessing. Wireless communication with other elements of the system 10is generally described above. In this way, the processing capabilitiesof the system 10 may be enhanced by shifting certain processing andanalytical tasks to a remotely located computer, such as a servercomputer, with greater computational abilities and, in some embodiments,access to additional data or other resources.

In some embodiments, the data received may be transmitted to the remotecomputer during the athletic activity. In another embodiment, the datareceived may be transmitted to the remote computer after the athleticactivity has been completed.

In some embodiments, the physiological data received may be compared todata associated with the individual 100 for the present athleticactivity and data associated with the individual 100 from a previousathletic activity. In some embodiments, the data may be compared to datareceived during a different individual's 100 athletic activity.

By using the system 10 including the sensor module 102 described above,embodiments of the present invention may advantageously enable theindividual 100 (or their coach, teammate, a spectator, friends,competitors, etc.) to obtain this or other information about the motionof the individual's 100 body, or other information related to thehealth, nutrition, wellness, mindset, etc. of the individual 100 duringor after the course of the athletic activity.

For running, sensor module 102 embodiments such as those described abovemay enable an individual 100, to determine, for example, characteristicsof a runner's motion. For example, a sensor module 102 could be used todetermine the speed, pace, distance traversed, locations traversed, orto discriminate between different surfaces (e.g., grass, street, ortrail) and inclinations (e.g., uphill, flat, or downhill). In someembodiments the sensor module 102 may be mounted, for example, on arunner's torso, arm, hand, leg, foot, or head, or on or in their articleof footwear, or integrated into electronic device 400.

In some embodiments of the present invention, the sensor module 102 maybe capable of compensating for inherent deficiencies that may be presentfor various types of sensor contained within or in communication withthe sensor module 102. Most real world sensors have limitations. Forexample, accelerometers, magnetometers, and gyroscopes may have accuracyissues, particularly when used at speeds of motion of the individual 100or under other conditions that differ from their initial calibrationconditions.

In some embodiments of the present invention, the sensor module 102 maycommunicate with other components of the system 10 via wired or wirelesstechnologies. Communication between the sensor module 102 and othercomponents of the system 10 may be desirable for a variety of reasons.For example, to the extent that the sensor module 102 records and storesathletic activity information, it may be useful to transmit thisinformation to another electronic device for additional data processing,data visualization, sharing with others, comparison to previouslyrecorded athletic activity information, or a variety of other purposes.As a further example, to the extent that the sensor module 102 hasinsufficient processing power, wide area network transmissioncapabilities, sensor capabilities, or other capabilities, thesecapabilities can be provided by other components of the system 10. Withthis in mind, possible communications means are described briefly below.

FIG. 5 is a diagram of a sensor module interacting with one of anelectronic device, a standalone device, a network, and a serveraccording to an embodiment of the present invention.

Transceiver 112 may allow sensor module 102 to communicate, for example,with other locally or remotely located individuals 100, or otherstandalone devices 600, via network 602, or server 604, for example, asshown in FIG. 5. Communication between these components may be one waycommunication or two way communication.

Communication may also occur between the sensors, electronic device,and/or a remote server 604 via a network 602, for example, as shown inFIG. 5. In some embodiments, the network is the Internet. The Internetis a worldwide collection of servers, routers, switches and transmissionlines that employ the Internet Protocol (TCP/IP) to communicate data.The network may also be employed for communication between any two ormore of the sensors, the electronic device, the server, etc. In someembodiments of the present invention, information is directlycommunicated between the sensors or processor and the server via thenetwork, thus bypassing the electronic device.

A variety of information may be communicated between any of thecomponents that may transmit or receive data or information. Suchinformation may include, for example, performance parameter data, devicesettings (including sensor settings), software, and firmware.

Communication among the various elements of the present invention mayoccur after a workout/athletic activity, or other experience has beencompleted or in substantially real-time during the workout/athleticactivity, or other experience.

The electronic device 400 may serve a variety of purposes including, forexample, providing additional data processing, providing instructions toindividual 100; providing additional data storage, providing datavisualization, providing additional sensor capabilities, relayinginformation to a network 602, providing for the playback of music orvideos, or the like.

The electronic device 400 illustrated in the figures may not be adedicated electronic monitoring device; the electronic device 400illustrated in the figures may be a mobile phone, dedicated fitnessmonitor, smart watch, tablet computer, etc. In alternate embodiments, itmay be possible for the sensor module 102 itself to be embodied by amobile phone, or for the electronic device 400 to be a mobile phone.Including an electronic device 400 in the system 10, such as a mobilephone, may be desirable as mobile phones are commonly carried byindividuals 400, even when engaging in athletic activities, and they arecapable of providing significant additional computing and communicationpower at no additional cost to the individual 100.

Wired communication between the sensor module 102 and an electronicdevice 400 may be achieved, for example, by placing the sensor module102—or a piece of athletic equipment or electronic device 400 includingthe sensor module 102—in a docking unit that is attached to theelectronic device 400 using a communications wire plugged into acommunications port of the electronic device 400. In another embodiment,wired communication between the sensor module 102 and the electronicdevice 400 may be achieved, for example, by connecting a cable betweenthe sensor module 102—or a piece of athletic equipment or electronicdevice 400 including the sensor module 102—and the computer orstandalone device 600. The data port 132 of the sensor module 102 and acommunications port of the computer 600 may include USB ports. The cableconnecting the sensor module 102 and the computer 600 may be a USB cablewith suitable USB plugs including, but not limited to, USB-A or USB-Bregular, mini, or micro plugs, or other suitable cable such as, forexample, a FireWire, Ethernet or Thunderbolt cable. As previouslyexplained above, in some embodiments, such cables could be used tofacilitate power transfer to a power source of the sensor module 102, inorder to charge the power source. Alternatively, the power source may berecharged by inductive charging, or by using a docking station with acharging base.

Wired connection to an electronic device 400 may be useful, for example,to upload athletic activity information from the sensor module 102 tothe electronic device 400, or to download application software updatesor settings from the electronic device 400 to the sensor module 102.

Wireless communication between the sensor module 102—or a piece ofathletic equipment or electronic device 400 including the sensor module102—and the electronic device 400 may be achieved, for example, by wayof a wireless wide area network (such as, for example, the Internet), awireless local area network, or a wireless personal area network. As iswell known to those skilled in the art, there are a number of knownstandard and proprietary protocols that are suitable for implementingwireless area networks (e.g., TCP/IP, IEEE 802.16, Bluetooth, Bluetoothlow energy, ANT, ANT+ by Dynastream Innovations, or BlueRobin).Accordingly, embodiments of the present invention are not limited tousing any particular protocol to communicate between the sensor module102 and the various elements of the system 10 of the present invention.

In one embodiment, the sensor module 102—or a piece of athleticequipment or electronic device 400 including the sensor module 102—maycommunicate with a wireless wide area network communications system suchas that employed by mobile telephones. For example, a wireless wide areanetwork communication system may include a plurality of geographicallydistributed communication towers and base station systems. Communicationtowers may include one or more antennae supporting long-range two-wayradio frequency communication wireless devices, such as sensor module102. The radio frequency communication between antennae and the sensormodule 102 may utilize radio frequency signals conforming to any knownor future developed wireless protocol, for example, CDMA, GSM, EDGE, 3G,4G, IEEE 802.x (e.g., IEEE 802.16 (WiMAX)), etc. The informationtransmitted over-the-air by the base station systems and the cellularcommunication towers to the sensor module 102 may be further transmittedto or received from one or more additional circuit-switched orpacket-switched communication networks, including, for example, theInternet.

As previously noted, in some embodiments of the present invention,sensor module 102 may communicate with an electronic device, such as asmart phone, that is also carried by the individual 100 during theathletic activity or experience.

In some embodiments of the present invention, for example, as shown inFIG. 4, the electronic device 400 may take the form of a mobile phoneand may include at least a processor, a memory, user input controls, apositioning system receiver, a wireless wide area network (WWAN)transceiver, a visual display, and an audio unit. A visual display inthe form of a LCD screen, and user input controls in the form of aphysical keyboard and a scroll ball may be present. Individual 100 maycarry electronic device 400 during an activity, such that data istransmitted while carried by the individual. As used herein, “carry” mayinclude that the electronic device 400 is worn (e.g., as a smart watch,incorporated into a garment, or other accessory), or mounted to a pieceof equipment (e.g., connected to a bicycle, or contained within a bagcarried by the individual 100).

The memory of the electronic device 400 may be adapted to storeapplication programs, software platforms or modules, used to implementaspects of the functionality of the system 10 described herein.Alternatively, those of skill in the art will understand that all orpart of the software may be stored on the server 604 and accessed overthe network 602 and run remotely as a mobile web application, or storedlocally in electronic device 400, having a memory.

Those skilled in the art will appreciate that alternative or additionalsoftware modules and sub-modules may be implemented in order to provideor extend the described or additional functionalities to the individual100 using the electronic device 400. For example, the softwareconfiguration of software stored on an electronic device 400 may includea device operating system, which may be one of the commerciallyavailable mobile phone operating systems such as, for example,BlackBerry OS, iPhone OS, Windows Mobile, Symbian, LINUX, WebOS, orAndroid. The device operating system may also have an associatedapplication programming interface through which middleware andapplication programs may access the services of the operating system.

The various modules of the system 10 of the present invention maysupport GUIs through which an individual 100 can interact with thesystem 10 using the electronic device 400 just prior to and/or during anactivity. As will be appreciated by those of skill in the art, in oneembodiment the GUIs may be supported by a mobile device applicationbeing run on the electronic device 400. In another embodiment, the GUIsmay appear as web pages provided by the server 604 via a website thatmay be accessible to the individual 100 over the network 602 using a webbrowser on their electronic device 400. The GUIs may be considered to bepart of the methods or systems of the present invention.

In some embodiments, the system 10 may be sold as a package, includingan electronic device 400, sensor modules 102 for multiple individuals100, and a charger.

System 10 may recognize and record repeat usage of the system 10 overtime, number of times various individuals store their data into aprofile and update that data. The system 10 may also be able tointegrate with various social media platforms, allowing individuals toshare with their social network data regarding their gaitcharacteristics, their usage of the system 10.

Embodiments can be implemented, for example, using one or morewell-known computer systems or one or more components included incomputer system 3100 shown in FIG. 6. Computer system 3100 can be anywell-known computer capable of performing the functions describedherein, including electronic device 400.

Computer system 3100 includes one or more processors (also calledcentral processing units, or CPUs), such as a processor 3104. Processor3104 is connected to a communication infrastructure or bus 3106.

One or more processors 3104 may each be a graphics processing unit(GPU). In an embodiment, a GPU is a processor that is a specializedelectronic circuit designed to process mathematically intensiveapplications. The GPU may have a parallel structure that is efficientfor parallel processing of large blocks of data, such as mathematicallyintensive data common to computer graphics applications, images, videos,etc.

Computer system 3100 also includes user input/output device(s) 3103,such as monitors, keyboards, pointing devices, etc., that communicatewith communication infrastructure 3106 through user input/outputinterface(s) 3102.

Computer system 3100 also includes a main or primary memory 3108, suchas random access memory (RAM). Main memory 3108 may include one or morelevels of cache. Main memory 3108 has stored therein control logic(i.e., computer software) and/or data.

Computer system 3100 may also include one or more secondary storagedevices or memory 3110. Secondary memory 3110 may include, for example,a hard disk drive 3112 and/or a removable storage device or drive 3114.Removable storage drive 3114 may be a floppy disk drive, a magnetic tapedrive, a compact disk drive, an optical storage device, tape backupdevice, and/or any other storage device/drive.

Removable storage drive 3114 may interact with a removable storage unit3118. Removable storage unit 3118 includes a computer usable or readablestorage device having stored thereon computer software (control logic)and/or data. Removable storage unit 3118 may be a floppy disk, magnetictape, compact disk, DVD, SD-Card, optical storage disk, and/or any othercomputer data storage device. Removable storage drive 3114 reads fromand/or writes to removable storage unit 3118 in a well-known manner.

According to an exemplary embodiment, secondary memory 3110 may includeother means, instrumentalities or other approaches for allowing computerprograms and/or other instructions and/or data to be accessed bycomputer system 3100. Such means, instrumentalities or other approachesmay include, for example, a removable storage unit 3122 and an interface3120. Examples of the removable storage unit 3122 and the interface 3120may include a program cartridge and cartridge interface (such as thatfound in video game devices), a removable memory chip (such as an EPROMor PROM) and associated socket, a memory stick and USB port, a memorycard and associated memory card slot, and/or any other removable storageunit and associated interface.

Computer system 3100 may further include a communication or networkinterface 3124. Communication interface 3124 enables computer system3100 to communicate and interact with any combination of remote devices,remote networks, remote entities, etc. (individually and collectivelyreferenced by reference number 3128). For example, communicationinterface 3124 may allow computer system 3100 to communicate with remotedevices 3128 over communications path 3126, which may be wired and/orwireless, and which may include any combination of LANs, WANs, theInternet, etc. Control logic and/or data may be transmitted to and fromcomputer system 3100 via communication path 3126.

In an embodiment, a tangible apparatus or article of manufacturecomprising a tangible computer useable or readable medium having controllogic (software) stored thereon is also referred to herein as a computerprogram product or program storage device. This includes, but is notlimited to, computer system 3100, main memory 3108, secondary memory3110, and removable storage units 3118 and 3122, as well as tangiblearticles of manufacture embodying any combination of the foregoing. Suchcontrol logic, when executed by one or more data processing devices(such as computer system 3100), causes such data processing devices tooperate as described herein.

Turning to FIG. 7, a health and fitness monitoring method forautomatically detecting an activity is shown as 700. At step 702, themethod includes receiving a first motion data stream including motiondata for an individual. At step 704, the method includes receiving asecond motion data stream including motion data for the individual. Atstep 706, the method includes processing, via a processor, the firstmotion data stream into a motion segment data stream. At step 708, themethod includes organizing, via the processor, the motion segment datastream into minute buckets to be stored in a memory as an array. At step710, the method includes comparing the array to the second motion datastream to determine that the first motion data stream and second motiondata stream overlap, to determine unique data in the second motion datastream corresponding to additional active minutes. At step 712, themethod includes adding the minute buckets from the first motion datastream to the additional active minutes of the second motion datastream, wherein the first motion data stream comprises an operatingsystem based activity classification.

Turning to FIG. 8, method 800 is shown, which may be a health andfitness monitoring method for automatically detecting a workout. Method800 may begin at step 802, which includes comparing motion data from aportable electronic device with third party motion data. At step 804,the method includes categorizing the overlap of the motion data from theportable electronic device with the third party motion data. At step806, the method includes determining that a minimum time active haselapsed between an indication that an activity has begun and anindication that the activity has ended such that the activity iscategorized as a workout based on the overlap of the motion data. Atstep 808, the method includes adding active time within the third partymotion data that is not also within the motion data from the portableelectronic device.

Turning to FIG. 9, method 900 is shown, which is a health and fitnessmonitoring method for automatically detecting an activity. At step 902the method includes receiving a user input motion data stream from auser at a front end of a software platform corresponding to a workoutengaged in by the individual. At step 904, the method includestransmitting the user input motion data stream to a back end of thesoftware platform to be normalized and de-duplicated with the first andsecond motion data streams, wherein the third data stream furtherincludes the unique summation of active minutes between the first,second, and user input motion data streams.

In some embodiments, the movement of the bodies of a plurality ofindividuals engaged in an athletic activity or experience and/or themovement of a plurality of pieces of athletic equipment used by theindividuals during the athletic activity or experience may be monitored.In some embodiments, real-time monitoring and/or feedback may beprovided, while in other embodiments post-activity feedback may beprovided.

Various aspects of the present invention, or any parts or functionsthereof, may be implemented using hardware, software, firmware, tangiblenon-transitory computer readable or computer usable storage media havinginstructions stored thereon, or a combination thereof and may beimplemented in one or more computer systems or other processing systems.

Program products, methods, and systems of the present invention caninclude any software application executed by one or more electronicdevices 400. An electronic device 400 can be any type of computingdevice having one or more processors. For example, the electronic device400 can be a workstation, mobile device (e.g., a mobile phone, personaldigital assistant, tablet computer, or laptop), computer, server,compute cluster, server farm, game console, set-top box, kiosk, embeddedsystem, a gym machine, a retail system or retail enhancement system orother device having at least one processor and memory. Embodiments ofthe present invention may be software executed by a processor, firmware,hardware or any combination thereof in a computing device.

In this document, terms such as “computer program medium” and“computer-usable medium” may be used to generally refer to media such asa removable storage unit or a hard disk installed in hard disk drive.Computer program medium and computer-usable medium may also refer tomemories, such as a main memory or a secondary memory, which can bememory semiconductors (e.g., DRAMs, etc.). These computer programproducts provide software to computer systems of the present invention.

Computer programs (also called computer control logic) may be stored onmain memory and/or secondary memory. Computer programs may also bereceived via a communications interface. Such computer programs, whenexecuted, may enable computer systems of the present invention toimplement embodiments described herein. Where embodiments areimplemented using software, the software can be stored on a computerprogram product and loaded into a computer system using, for example, aremovable storage drive, an interface, a hard drive, and/orcommunications interface.

Based on the description herein, a person skilled in the relevant artwill recognize that the computer programs, when executed, can enable oneor more processors to implement processes described above, such as thesteps in the methods illustrated by the figures. In some embodiments,the one or more processors can be part of a computing deviceincorporated in a clustered computing environment or server farm.Further, in some embodiments, the computing process performed by theclustered computing environment may be carried out across multipleprocessors located at the same or different locations.

Software of the present invention may be stored on any computer-usablemedium. Such software, when executed in one or more data processingdevice, causes the data processing device to operate as describedherein. Embodiments of the invention employ any computer-usable or-readable medium, known now or in the future. Examples ofcomputer-usable mediums include, but are not limited to, primary storagedevices (e.g., any type of random access or read only memory), secondarystorage devices (e.g., hard drives, floppy disks, CD ROMS, ZIP disks,tapes, magnetic storage devices, optical storage devices, MEMS,nanotechnological storage devices, memory cards or other removablestorage devices, etc.), and communication mediums (e.g., wired andwireless communications networks, local area networks, wide areanetworks, intranets, etc.).

The systems and methods described herein contemplate physical alterationof code or components, and transforming code or components such that thesystem or method is physically altered (e.g., creating a new data file,for example). The solutions provided herein may be rooted in technology,e.g., computer technology, and overcome problems related tophysiological monitoring for example, that are unique to technologicalrealms such as networking or software related issues with dataprocessing. The systems and methods described herein additionally maycontemplate additional elements beyond data relationships, such that thesolutions tie process advantages to a particular device and increaseperformance of such a device (e.g., increasing processing efficiency,resolution for location based features, etc.).

Embodiments have been described above with the aid of functionalbuilding blocks illustrating the implementation of specified functionsand relationships thereof. The boundaries of these functional buildingblocks have been arbitrarily defined herein for the convenience of thedescription. Alternate boundaries can be defined so long as thespecified functions and relationships thereof are appropriatelyperformed.

The foregoing description of the specific embodiments of the systemdescribed with reference to the figures will so fully reveal the generalnature of the invention that others can, by applying knowledge withinthe skill of the art, readily modify and/or adapt for variousapplications such specific embodiments, without undue experimentation,without departing from the general concept of the present invention.

While various embodiments of the present invention have been describedabove, they have been presented by way of example only, and notlimitation. It should be apparent that adaptations and modifications areintended to be within the meaning and range of equivalents of thedisclosed embodiments, based on the teaching and guidance presentedherein. It therefore will be apparent to one skilled in the art thatvarious changes in form and detail can be made to the embodimentsdisclosed herein without departing from the spirit and scope of thepresent invention. The elements of the embodiments presented above arenot necessarily mutually exclusive, but may be interchanged to meetvarious needs as would be appreciated by one of skill in the art.

It is to be understood that the phraseology or terminology used hereinis for the purpose of description and not of limitation. The breadth andscope of the present invention should not be limited by any of theabove-described exemplary embodiments, but should be defined only inaccordance with the following claims and their equivalents.

It is to be appreciated that the Detailed Description section, and notthe Summary and Abstract sections, is intended to be used to interpretthe claims. The Summary and Abstract sections may set forth one or morebut not all exemplary embodiments of the present invention ascontemplated by the inventor(s), and thus, are not intended to limit thepresent invention and the appended claims in any way.

The present invention has been described above with the aid offunctional building blocks illustrating the implementation of specifiedfunctions and relationships thereof. The boundaries of these functionalbuilding blocks have been arbitrarily defined herein for the convenienceof the description. Alternate boundaries can be defined so long as thespecified functions and relationships thereof are appropriatelyperformed.

The foregoing description of the specific embodiments will so fullyreveal the general nature of the invention that others can, by applyingknowledge within the skill of the art, readily modify and/or adapt forvarious applications such specific embodiments, without undueexperimentation, without departing from the general concept of thepresent invention. Therefore, such adaptations and modifications areintended to be within the meaning and range of equivalents of thedisclosed embodiments, based on the teaching and guidance presentedherein. It is to be understood that the phraseology or terminologyherein is for the purpose of description and not of limitation, suchthat the terminology or phraseology of the present specification is tobe interpreted by the skilled artisan in light of the teachings andguidance.

The breadth and scope of the present invention should not be limited byany of the above-described exemplary embodiments, but should be definedonly in accordance with the following claims and their equivalents.

The claims in the instant application are different than those of theparent application or other related applications. The Applicanttherefore rescinds any disclaimer of claim scope made in the parentapplication or any predecessor application in relation to the instantapplication. The Examiner is therefore advised that any such previousdisclaimer and the cited references that it was made to avoid, may needto be revisited. Further, the Examiner is also reminded that anydisclaimer made in the instant application should not be read into oragainst the parent application.

What is claimed is:
 1. A health and fitness monitoring method forautomatically detecting an activity, comprising: transmitting, via asensor, a first motion data stream comprising first motion data for anindividual, the first motion data stream further comprising an operatingsystem based activity classification; receiving, at a processor; thefirst motion data stream; receiving, at the processor, a second motiondata stream comprising second motion data for the individual;processing, via the processor, the first motion data stream into amotion segment data stream; organizing, via the processor, the motionsegment data stream into minute buckets and storing the minute bucketsin a memory as an array; comparing, via the processor, the array to thesecond motion data stream to determine that the first motion data streamand second motion data stream overlap, to determine unique data in thesecond motion data stream corresponding to additional active minutes;and adding the minute buckets from the first motion data stream to theadditional active minutes of the second motion data stream.
 2. Themethod of claim 1, further comprising: determining that an entry of thearray indicates an inactive density threshold; determining that aminimum time inactive has elapsed after the entry of the arrayindicating the inactive density threshold such that an end of theactivity is determined; confirming whether a minimum time active elapsedbetween a candidate start density threshold and the end of the activitysuch that the activity is categorized as a workout.
 3. The method ofclaim 1, wherein the second motion data stream comprises a third partysoftware platform activity classification.
 4. The method of claim 1,wherein the second motion data stream comprises data input by theindividual.
 5. The method of claim 1, wherein the second motion datastream comprises geo-tagged data.
 6. A health and fitness monitoringmethod for automatically detecting a workout, comprising: comparing, viaa processor, motion data from a portable electronic device with thirdparty motion data from a third party software platform; categorizing,via the processor, an overlap of the motion data from the portableelectronic device with the third party motion data; determining, via theprocessor, that a minimum time active has elapsed between an indicationthat an activity has begun and an indication that the activity has endedsuch that the activity is categorized as a workout based on the overlapof the motion data; and adding, via the processor, active time withinthe third party motion data that is not also within the motion data fromthe portable electronic device.
 7. The method of claim 6, wherein theminimum time active is configured by an individual in a user interface.8. The method of claim 6, wherein the categorizing of the motion datacomprises categorizing motion data as inactive when the third partymotion data comprises the same data.
 9. A health and fitness monitoringmethod for automatically detecting an activity, comprising:transmitting, via a sensor, a first motion data stream; receiving thefirst motion data stream at a front end of a software platform stored ona memory and implemented by a processor; receiving a second motion datastream at the front end of the software platform; transmitting the firstand second motion data streams to a back end of the software platform;implementing the back end of the software platform, via the processor,to normalize and de-duplicate the first and second motion data streams;and transmitting a third data stream to the front end of the softwareplatform representative of a summation of minutes that an individual isactive between the first and second motion data streams.
 10. The methodof claim 9, wherein the first motion data stream comprises an operatingsystem based activity classification.
 11. The method of claim 10,further comprising: receiving a user input motion data stream from auser at the front end of the software platform corresponding to aworkout engaged in by the individual; and transmitting the user inputmotion data stream to the back end of the software platform,implementing the back end of the software platform, via the processor,to normalize and de-duplicate the user input motion data stream with thefirst and second motion data streams, wherein the third data streamfurther comprises a summation of minutes that the individual is activebetween the first, second, and user input motion data streams.
 12. Themethod of claim 10, further comprising: receiving a geo-tagged inputmotion data stream from a user at the front end of the software platformcorresponding to a workout engaged in by the individual; andtransmitting the geo-tagged input motion data stream to the back end ofthe software platform, implementing the back end of the softwareplatform, via the processor, to normalize and de-duplicate thegeo-tagged input motion data stream with the first and second motiondata streams, wherein the third data stream further comprises asummation of minutes that the user is active between the first, second,and geo-tagged input motion data streams.
 13. The method of claim 9,further comprising: determining that a minimum time active has elapsedbetween determining the individual has likely engaged in the activityand determining the individual is not engaged in the activity; andindicating that a workout has occurred.